基于CityMaker平台的二次开发主要分两种方式:完全二次开发和基于现有软件的插件式开发。
前者的好处就在于可以从源头按照需求来定制,尽管工作量更大,却可以实现“我的地盘我做主”;后者(Addins)恰恰相反,尽管在形式上受到一定的约束,却可以充分利用软件中现有的大量通用基础功能,专注于个性化定制的部分,从而实现“画龙点睛”的效果。
CityMaker Builder、CityMaker Explorer Pro等软件采用RibbonUI风格设计,所有功能有组织地集中存放,能够更好地在每个应用程序中组织命令,同时提供足够显示更多命令的空间,均支持插件开发方式,用户可以在相应的规则内自主设计个性化的UI和功能,下面是典型的RibbonUI示意图。
由于可以在软件中添加各种不同的功能组件,如RibbonPage、RibbonPageGroup、ButtonCommand、CheckCommand等,因此,用户既可以新建一个Page页来装载自己开发的功能模块,也可以新建一个组,或者直接将功能添加到当前软件现有的模块之中。通过不同组件的排列组合可以随心所欲地定制专属“自己的软件UI”,下图为不同形式的Builder插件的组织方式。
说完了界面,接下来说一下功能。使用插件开发,最最重要的当然是依靠Runtime和Builder或Explorer中的类库了。CityMaker为用户提供大量类库支撑插件开发,这些都可以在软件安装路径下找到。有了这些,我们就可以在软件自身的基础上,进行进一步的开发。
接下来就到了最核心的部分,让我们看一下平台为插件开发提供了哪些有用的接口呢?详细的接口说明可以参考SDK文档中AddIn Development Document.pdf相关内容。
利用上述接口实现自定义功能后,通过一个关键的配置文件,将用户界面中添加的各种不同功能按钮和功能代码链接起来,就完成了整个的插件开发。
//插件配置文件唯一标识符
//插件程序集
//插件菜单项配置
...
获取最新CITYMAKER系列软件,体验不一样的3D GIS,请关注——。
加入我们官方QQ讨论群,参与更多互动分享
CityMaker软件技术分享群
189406624