当前位置:甜馍馍地理信息网 >> 地理信息系统GIS >> 组件式GIS >> 正文 >>  [阅读资讯:在VC++中嵌入MapX集成二次开发的基本方法步骤实例]

在VC++中嵌入MapX集成二次开发的基本方法步骤实例

[ 来源:互联网 | 时间:2007年11月15日 | 收藏本文 ] 【

结合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++例子中有这两个文件)。

下一页
本文共 2 页,第  [1]  [2]  页

【推荐本文】 【打印本页】 【返回顶部

>> 相关文章:

● 上一篇文章:用VC读取DXF格式文件的原理及代码实例
● 下一篇文章:Delphi中MapObject连接SDE数据库代码
最新文章
推荐文章