MapGIS K9三维TDE平台插件开发第一个插件程序(新手入门必看)

在之前的 MapGIS K9三维TDE平台插件开发环境配置 文章里面,我介绍了使用MapGIS K9 三维TDE平台开发插件的环境配置,但是仅仅配置好环境只是一个开始,相信很多读者已经像小编我一样摩拳擦掌了吧,下面小编我就献丑给各位读者讲一下使用MapGIS K9 三维TDE平台开发一个会说Hello World 的简单三维插件程序。

STEP 1 插件导出函数

在MapGIS K9 三维TDE平台里面开发三维插件,这是必须的一步,就是设置导出函数。

打开你所建立的工程(这里我以之前MapGIS K9三维TDE平台插件开发环境配置里面所建立的工程为例)里面的.def文件。写入以下代码:

;MyDemo.def : 声明DLL 的模块参数。

;LIBRARY "MyDemo"

EXPORTS
; 此处可以是显式导出
dllStartPlugin @1
dllStopPlugin @2

STEP 2 新建插件类

在解决方案上右击,选择添加—类。选择C++类,类命名为MyPlugin,基类为:FunctionPluginBase。

STEP 3 修改头文件

包含头文件TDEFunctionPluginBase7.h,并且使用MapGIS K9 三维TDE的命名空间。

并且添加两个函数——onExecute和registerFunctions函数,全部代码如下:

#pragma once
#include "TDEFunctionPluginBase7.h"
using namespace TDE;
class MyPlug :public FunctionPluginBase
{
public:
    MyPlug(void);
    ~MyPlug(void);
public:
    virtual void onExecute(const String& name, WPARAM wParam, LPARAM lParam) ;
    // 派生插件必须在此函数中完成写入功能列表的工作
    virtual void registerFunctions(void) ;
};

STEP 4 在类的CPP文件里响应函数

给插件功能起一个名字,将下面的代码放在头文件的下面声明即可。

#include "StdAfx.h"
#include "MyPlug.h"
const String MyFirDomeName="MyFirstFun";

再给插件本身起一个名字,放在构造函数里面,代码如下:

MyPlug::MyPlug(void)
{
    mClassName=mHandle="MyFirstDemo";
}

响应onExecute函数,代码如下:

void MyPlug::onExecute(const String& name, WPARAM wParam, LPARAM lParam)
{
    if(name==MyFirDomeName)
    {
        AfxMessageBox("Hello TDE World!");
    }
}

响应registerFunctions函数,代码如下:

void MyPlug::registerFunctions(void)
{
    FunctionItemGroup* pp=getRootItem();
    pp->appendItem(FIT_ITEM,MyFirDomeName);
}

STEP 5 启动插件

在默认工程cpp文件里面实例化刚刚写的插件进行启用即可。

在MyDemo.cpp文件里面包含一下头文件:

#include "stdafx.h"
#include "MyDemo.h"
#include "MyPlug.h"
#include "TDEFunctionPluginManager7.h"

接下来就是用刚刚写的类实例化一个对象,并且进行调用了,代码如下:

MyPlug *pg=NULL;
long WINAPI dllStartPlugin()
{
    pg=new MyPlug();
    FunctionPluginManager::getSingletonPtr()->addFunctionPlugin(pg);
    return 1;
}

long WINAPI dllStopPlugin()
{
G3D_DELETE(pg);//删除对象释放内存
return 1;
}

其中我们可以看到在.def文件里面导出的函数dllStartPlugin和dllStopPlugin在这里实现了。

总结:

这就是在MapGIS K9三维TDE平台下开发第一个Hello World的全过程,总体来说流程还是蛮清晰的,希望这个程序对刚刚入门的童鞋有所帮助。

关于这个demo

对了,忘了给大家看看这个Demo的效果图,效果如下:

猛击这里这里下载这个demo吧。

解压密码:malagis.com

PS:注意,密码是malagis.com,没有前面的http,不要从浏览器直接复制啊,亲!

MapGIS K9三维TDE平台插件开发环境配置 MapGIS K9三维TDE平台插件开发调试方法

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论