GIS资讯 GIS技术 GIS产品 GIS书籍 GIS下载 GIS知识 GIS论文 GIS考研 GIS人物 GIS企业 GIS招聘 GPS相关 RS 相关 3D 相关 测绘相关 GIS博客 招标信息
您当前的位置:GIS资讯小组资讯中心GIS论文 → 资讯内容
Google
基于MapX平台的地理信息系统开发技术的研究
作者:佚名  来源:本站整理  更新时间:2007-11-16 22:45:46

减小字体 增大字体


新建网页 4  摘  要:介绍了Mapinfo公司的MapX开发平台的对象结构,讨论了运用MapX进行地理信息系统开发的基本方法和关键技术,并通过实例对这些方法的具体应用进行了说明。
    关键词地理信息系统MapX;DCOM;视图

       地理信息系统作为一种新兴的信息处理技术,在对具有地理特征的信息进行可视化表示方面具有独到的特点,从而得到日益广泛地应用。目前国内外已出现了多种地理信息系统开发平台,其中,Mapinfo公司的产品是目前使用比较广泛的开发平台之一。以下就如何运MapX进行地理信息应用系统开发的基本方法和关键技术做一介绍。

1MapX对象结构
    MapX是基于Microsoft公司DCOM技术的ActiveX对象组件。其核心是由一组对象组成,这些对
象主要包括Map对象,Layer对象,Feature对象,DataSet对象等。对象之间的层次关系如图
1所示。
   
从层次关系图中,可以看出一个Map对象(即地图)可以由若干Layer对象(即图层)组成,其中每一Layer对象又可以与一组DataSet对象相对应,而每个Layer中又包含若干Feature对象。在了解了MapX的对象结构以后,我们可以进一步地对MapX的开发步骤进行研究。
2运用MapX的开发步骤
    (1) 建立地图视图
   
MapX中,开发者可以通过Layers Collection提供的Add或AddGeoSetLayers方法建立地图视图。

    使用AddGeoSetLayers建立地图视图开发者要使用AddGeoSetLayers 方法建立地图视图,首先要创建Geoset File。Geoset File记录了地图视图所包含的的图层及其相应属性。他可以通过使用MapX开发软件包提供的Geoset Manager交互式地创建(如图2)
    在建立好
Geoset File之后,可以通过以下方法建立视图:

    使用Geoset File的优点是可以交互式的创建各个图层及其属性。缺点是必须手工创建Geoset File。

    使用Add建立地图视图通过Add方法建立地图视图,开发者就可以直接在程序中指定图层,而不必事先创建Geoset File。

    (2) 运用地图控制工具
   
在建立了地图视图之后,开发人员可以通过MapX提供的工具接口完成对用户事件的响应。在MapX中,工具分为2类,一类为系统工具,他们主要包括:放大、缩小、漫游、标注等地理信息系统经常使用的工具,对这类工具系统使用固定的事件响应程序;另一类为用户自定义工具,开发人员可以根据需要编写专门的事件响应程序。
    使用地图控制工具一般要通过以下基本步骤:
    创建用户自定义工具若在应用程序中要使用自定义工具,首先应当使用
CreateCustomTool方法对其进行定义。

   
① 指定工具对应的编号,其范围为1~999之间。
   
② 指定工具类型。MapX中支持:
    MiToolTypePoint
点工具,用于对用户在地图上的单击鼠标事件进行响应;
    MiToolTypeLine直线工具,用于对用户在地图上的绘制直线的操作事件进行响应;
    MiToolTypeCircle圆工具,用于对用户在地图上的画圆的操作事件进行响应;
    MiToolTypeMarquee矩形工具,用于对用户在地图上的绘制矩形的操作进行响应;
    MiToolTypePoly折线工具,用于对用户在地图上的绘制折线的操作事件进行响应;
    ③ 指定该工具为当前工具时对应的光标。
MapX中支持30余种常见的光标类型。
   
设置当前工具在一个地图窗口上任何时刻只能有一个工具发生作用,这个工具就是当前工具。MapX中,可以通过以下方法设置当前工具:
   
Map1CurrentTool =99
通过这条命令可以设置工具编号为99的工具为当前工具。
  
 编写事件响应程序对于系统工具不必编写单独的事件响应程序,MapX会调用默认的方法对其响应。但对于用户自定义事件,则必须编写响应的事件响应程序。
    根据工具类型的不同,事件响应程序分为
2类:
   
一类是和miToolTypePoint,miToolTypeLine,miToolTypeCircle及miToolTypeMarq类工具相对应的ToolUsed事件。触发该事件时,MapX会传递相关参数给事件响应程序,这些参数包括:
    ToolNum工具编号,(x1,y1)单击鼠标处坐标,(x2,y2)释放鼠标按键处的坐标(只对miToolTypeLine、miToolTypeCircle及miToolTypeMarq类工具有效),distance(x1,y1)与(x2,y2)间的距离, shift、controlshift、control健是否按下,*EnableDefault――布尔类型指针,对该指针置False可以阻止
MapX对标准系统工具的响应,置True则使MapX对标准系统工具的做默认响应。
   
另一类是和miToolTypePoly 相对应的PolyToolUsed事件。触发该事件时,MapX除了会传递TooNum,shift,control,EnableDefault参数外,还会传递2个参数:
    Flags用于反映绘制折线的状态,分3种情况:开始绘制(miPolyToolBegin)、结
束绘制(
miPolyTool End)、放弃绘制(miPolyTool EndEscaped)、正在绘制(miPoly ToolInProgress);Pts折线的节点集合。
    (3) 示例
   
下面通过一个较为完整的例子说明在MapX平台上开发GIS系统的基本步骤。该实例运用Add方法显示图层,并定义了一个折线工具,在折线工具的事件响应程序中,计算了折线的地理距离。程序用Delphi语言实现,其流程图如下:





 

3结语
   
可以看出,MapX开发平台可以提供地理信息应用系统所需要的各主要方面功能,并具有开发方式灵活,接口简便的特点,不失为开发地理信息应用系统的理想平台。

参考文献

[1]Mapinfo . MapX Developer Guide
2]黄杏元,汤勤地理信息系统概论[M].北京:高等教育出版社,1990




[] [返回上一页] [打 印]
资讯评论 (评论内容只代表 GISTM 网友观点,与本站立场无关!)

用户名: * 查看 GISTM 更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         ( 注意“*”必填,请自觉遵守法律法规!) 验证码: 验证码,看不清楚?请点击刷新验证码

推荐文章
相关文章

关于本站 - 免责声明 - 帮助(?) - 友情连接 - 网站地图 - 网站留言