浅谈VC++环境下MAPGIS二次开发的实现
0.引言
MAPGIS 为支持用户进行二次开发,提供了包括从最基本数据单元的读取、保存、更新和维护到地图库的建立和漫游,以及空间分析、图象处理等一系列功能完整的二次开发函数库, 用户完全可以在MAPGIS 平台上开发面向各自领域的应用系统。 神舟六号返回搜救系统———“载人航天任务主着落场搜救辅助决策系统”就是以 MS-VisualC++ 5.0 为开发语言,利用 Win32 API 函数和 MAPGIS API 函数,基于MAPGIS 地理信息系统平台开发研制的。
1. MAPGIS二次开发方式成熟实用的地理信息系统的重要标志就是它能够提供给用户二次开发的能力。 目前,二次开发库以 API 函数、MFC 类库、COM 组件、
ActiveX 控件四种方式提供[1]。
1.1 API(Application Program Interface)即微软提供的 Windows 操作系统下应用程序的编程语言接口。 MAPGIS 二次开发库的实现被封装于若干动态连接库(DLL)中,是独立于开发工具的。
1.2 MFC(Microsoft Foundation Class) 微软提供的基础类 ,MAPGIS为运用 MFC 的开发者提供了多个基于 MFC 的可重用基类 (如图 1),将应用程序所需的常见基本功能作了封装,开发者从这些基类下派生即自动获得了从窗口显示控制到图形查询编辑的各项功能, 使用便利,改动灵活。 这些类的功能及继承关系如下[2]:
CGisView 类是 MAPGIS 类库中大多数类的基类。它封装了窗口管理的各种功能及操作,还支持窗口的保护和快速恢复等;CGisEditView类封装了 MAPGIS 编辑处理的基本数据对象和方法。 CGisEditView 类及其基类组成了十分强大的图形编辑函数库;CPrjEditView 类集成了对工程文件进行编辑处理所必需的数据对象的方法,具有对整个工程文件的各个文件编辑处理功能;CPrjListView 类集成了对工程文件进行控制处理所必需的数据对象的方法,具有对整个工程文件的各个文件编辑处理功能。
1.3 COM 组件 (Component Object Model) 开发的基本思想是把MAPGIS 的各大功能模块划分为几个控件 , 每个控件完成不同的功能,在软件开发中实现功能重用,开发者只需简单调用功能接口即可。基于 COM 技术的 MAPGIS 组件被包含在一系列 Windows 动态连接库(.dll)文件里。
1.4 ActiveX 控件是一种更高层次和更加通用的应用接口,使得在可视化程度很高的开发环境(如 VB 和 DELPHI)下进行二次开发更加方便,代码的可复用性更高。
2.具体实现方法
VC++语言功能强大,具有代码执行效率高等优点,而且还可以在VC++中灵活地调用 MAPGIS 中各个层面的二次开发方法。 在此将常用的两种开发方式(MFC 类库和组件)详细叙述:
相关文章
- 2022-01-01基于CAN总线的电动汽车整车参数测试网络
- 2023-03-08弱磁探测技术发展现状
- 2023-12-29二维流动模型的喷射器性能分析研究
- 2023-12-22载流薄板中裂纹形成瞬间尖端附近的热电磁场
- 2023-11-1845#钢支座裂纹分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。