在VC++中嵌入MapX集成二次开发的基本方法步骤实例
结合GIS工具软件与当今可视化开发语言的集成二次开发方式是GIS应用开发的主流。它的优点是既可以充分利用GIS工具软件对空间数据库的管理、分析功能,又可以利用其它可视化开发语言具有的高效、方便等编程优点,集二者之所长……缘由于此,本文谈谈在VC++中嵌入MapX进行二次开发的基本方法以及步骤,包括对应用工程的预设置、对MapX属性的操作、部分MapX工具的应用、设置图层控制和地图投影、以及设计编辑查询功能和分析统计功能等。
在开发GIS的过程中,首先要考虑的就是选择好的开发工具。单独使用可视化的编程语言不能方便地实现地理地图功能,而通常的GIS软件是一个非常专业的界面,并且不能完全满足各种GIS用户的需要,而使用“GIS组件 + 面向对象可视化编程语言”的模式就比较适合于各种应用的需要。
MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如Visual C++、Visual Basic、Delphi、PowerBuilder等。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。
首先让我们先看个例子吧:
(1) 创建数据库
空间数据库可以通过两种方法创建,一种是通过MapX的图层生成功能创建。MapX生成的每一图层都对应一张表(table),该表中除了存有地理对象的位置坐标以外,还可以包含其他属性字段;另一种方法是通过导入带有地理位置信息的其他数据库生成。MapX可以通过数据绑定把这些数据库中的地理信息映射到地图图层上,MapX支持对多种常用数据库的访问。
(2) 设置图层控制和地图投影
在把地图加入到MapX之前,我们可以使用MapX附带的图层管理工具Geoset Manager把要加入的图层匹配在一起,建成一个图层组,该图层组规定了其中各个图层的名称、内容、属性及各图层之间的显示顺序。MapX中可以给图层设置四种属性:可显示、可选择、可编辑和自动标注。一般图层的属性是可显示的,需要查询的图层设置为可选择,需要修改的图层设置为可编辑,而自动标注可以自动显示图层中地理对象的标签。
合理地设置这些属性将有助于系统实现地理信息的维护和查询功能。在匹配各个图层时,应该注意各个图层投影的设置。全部图层必须使用一致的投影方法才能精确匹配。MapX中的地图分为地球地图和非地球地图,地球地图中对象的坐标用经纬度来表示,非地球地图中对象的坐标通常是相对坐标,是相对于图中的某个基准点来设置的。如果图层的坐标不一致的话,必须先转换坐标才能进行匹配。
(3) 设计编辑功能
MapX提供标准的地理对象类型定义,在MapX所提供的点、线、面类型选择对话框中可以方便地选择地理对象的类型,包括所使用的符号的形状、颜色、大小等属性。利用MapX提供的画图工具,可以为用户设计出多种多样的地理对象生成工具。
利用MapX提供的多种地理信息对象的选择工具(如矩形、圆形选择工具),用户可以调用这些选择工具并和MapX所提供的编辑(删除、修改等)地理对象功能相结合,以完成地理信息系统中地理对象的编辑操作。但要注意,对于地理数据和非地理数据要分别对待。
(4) 设计查询功能和分析统计功能
对于地理信息系统中所要求的有关地理信息查询功能和分析统计功能,MapX提供了一定的查询和分析手段,如MapX可以根据图层表中的字段值查询相对应的地理对象;可以提供对应于图层表中某个或某几个字段的分析饼图等。对于非地理信息,就要依据系统的具体要求用面向对象的语言设计查询和分析统计功能。
然后让我们再总结性谈谈VC++嵌入MapX进行二次开发可分为以下几个步骤来实现:
1 对应用工程的预设置
在创建MapX控件之前,必须将MapX.h和MapX.cpp文件加入到工程中。对于Visual C++5.0及以上版本,从Project菜单中选择Add To Project -> Files命令,打开InsertFiles into Project对话框,选择MapX.cpp和MapX.h文件加入到工程中(在MapX自带的C++例子中有这两个文件)。
最新文章
- 教你利用Google Earth API自动化谷 [03-08]
- ArcGIS Engine实现添加图名比例尺指 [03-03]
- Google Earth客户端 基于Servlet的 [06-04]
- ArcObjects 3D开发简介 ArcScene构 [03-25]
- ArcIMS二次开发介绍 ArcMap服务 Ar [04-24]
- GIS的开发模式以及分析比较 宿主型 [04-24]
- 如何进行ArcIMS的二次开发 基于IMS [04-24]
- 什么是组件式GIS及组件式GIS开发平 [04-02]
- 地理信息系统软件开发OpenSource的 [03-31]
- SuperMap IS Java ——基于Java EE [03-30]
推荐文章


热点文章
用VC读取DXF格式文件的原理及代码
GIS二次开发各种方式对比和Activ
ArcEngine中使用上下左右键移动地
C#中调用MapX方法实例及代码剖析
矢量地图缩放、旋转、平移操作的
MapX在VC++中实现军用标图系统的
MapX应用程序发布和打包过程及注
ARC命令说用说明及详细讲解
MapX教程及基本编程应用实例
如何在MapObject下把ActiveX控件
MapX教程之数据库绑定方法过程及
用C#根据经纬度求两点间距离的函
基于.NET平台的MapX开发方法及实
MapInfo
基于MapX的GIS系统动态操作原理及
用VB和MapX实现各种专题图的示例
如何在VB下用MapObject实现流场显
MapX如何在图层上添加一个点的代
用VB实现MapX移屏测距功能原理及
AO的Display对象简介及应用代码实
VC下用MapX实现任何比例尺打印功
MapX开发疑问之坐标问题讲解
组件开发之MapXtreme for window
MapX图层样式替换的VB源代码
在VC++中嵌入MapX集成二次开发的
教你利用Google Earth API自动化
ArcGIS Engine实现添加图名比例尺
Google Earth客户端 基于Servlet
ArcObjects 3D开发简介 ArcScene
ArcIMS二次开发介绍 ArcMap服务

