该项目展示了如何使用SuperMap iObjects for C++ 进行二次开发,并对一些不易使用的功能进行封装,如用于地图窗口MapControl,用于场景窗口的SceneControl等。封装的工程在SuObjectCpp目录,这些类都支持在VS和Qt项目中使用,以及Linux系统下Qt开发使用。
注:TestData目录中仅有二维地图数据,因三维数据较大,没有上传GitHub。应用中采用选择文件方式打开,因此可以使用自己制作的工作空间数据,或是超图软件其他产品提供的示范数据。
包含Data和Mapping两个工程,用于封装SuperMap iObjects C++中较复杂的功能接口。Data中的Workspace实现对工作空间和数据源的管理。Mapping中的MapControl和SceneControl分别实现对二维地图和三维场景的窗口连接,以及图层管理等功能。JunSuMFCDialog和JunSuCpp就是基于这些封装实现的。
JunSuCpp
|—— PropertySheets -- MFC 项目属性配置文件
|—— Qt_pros -- Qt 项目配置文件,Qt Creator 打开该目录下的.pro文件即可
|—— SuObjectsCpp -- 部分封装SuperMap Objects C++常用功能方法的C++库,尤其是Mapping/MapControl是一个具有通用性的实现地图窗口的类
|—— TestData -- 测试数据
|—— VSApps -- 使用SuObjectsCpp中的库和SuperMap原有库构建的应用,分MFC和Qt框架两类应用
|—— VSSolution_2017 -- VS2017解决方案文件,VS2017为当前项目使用的版本
|—— What's New.md -- 项目功能更新记录
本项目都使用这些配置文件来配置:
1) PropertySheet_x64d.props -- 设置SuperMap Objects C++链接库目录和链接库名称
2) PropertySheets_Link_SuObjectsCpp.props -- 引入SuObjectsCpp中封装的库
3) PropertySheet_General.props -- 定义宏名"SuObjectsDir"指向SuperMap Objects C++ 产品包目录,并配置同文件目录; 头文件包括include,include/private 两个目录
如图:
打开属性管理器,在任意一个项目配置中打开"PropertySheet_General.props"配置文件,修改“自定义宏” -> "SuObjectsDir"指定的SuperMap iObjects for C++产品包目录。 如图:
打开工程属性,配置编译工具版本,如图:
Qt工程,右键工程 -> Qt工程设置,检查设置Qt版本以及使用的模块,本项目只使用Core, GUI, Widgets, 如图:
运行库配置,该项目中直接在工程属性中进行配置,可不依赖系统环境Path, 如图配置应用工程:
若使用VS2012打开解决方案,其配置方法类似
使用nmake编译,工具 -> 选项 -> 编译&运行 -> 常规设置 -> 不勾选 “使用jom 代替nmake”, 如图:
项目属性,编译环境配置SuObjectsDir变量,设置SuperMap iObjects for C+产品目录,如图:
项目属性,运行环境中,将SuperMap iObjects for C++ 运行库目录添加到Path, 如图:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。