kaiyun官方注册
您所在的位置: 首页> 通信与网络> 业界动态> 基于MapX的GIS动态操作与实现

基于MapX的GIS动态操作与实现

2008-09-12
作者:刘书雷 李 军 陈宏盛

摘 要:分析了GIS和MapX的基本技术,提出了GIS信息显示系统" title="显示系统">显示系统中地图对象动态添加、删除以及地图整体显示效果适时变化的实现方法。结合基于MapX的电力网络配置" title="网络配置">网络配置显示系统来说明这些技术。

关键词:GIS MapX 动态操作 添加 删除

  地理信息系统GIS(Geographic Information System)是收集、管理、查询、分析、操作以及表现与地理相关的数据信息的计算机信息系统,能够为分析、决策提供重要的支持平台。近年来,GIS广泛应用于基础设施(道路、电力等)的规划、自然资源的开发和利用、城市的发展规划、人口迁移与安置以及交通工具的定位导航和定位等复杂的区域开发,并取得了良好的效益。

  随着GIS的迅猛发展,GIS越来越多地应用于信息显示系统" title="信息显示系统">信息显示系统的设计和实现,在信息显示系统中动态信息交互显示是一个重要内容。例如在区域电力网络的管理方面,一个单独的变电站可以满足一定区域的供电需求。某个地区是否需要增加一个变电站以满足该区域电力供应的需求,增加这个变电站后整个电力网络的覆盖范围" title="覆盖范围">覆盖范围达到什么水平,都可以通过动态GIS模拟实现,达到辅助决策的效果。

  本文以区域电力设施配置显示系统的设计为背景,说明如何实现电力设施的添加、删除以及操作完成后适时显示系统的整体态势信息。

1 MapX简介

  MapX是MapInfo公司向用户提供的具有强大地图分析功能的32位OCX控件。编程人员在开发过程中可以选用自己最熟悉的可视化开发环境,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。同时,MapX采用基于MapInfo Professional的相同地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和空间分析功能;MapX提供了各种工具、属性和方法,非常容易实现这些功能,因此近年来得到了迅猛发展。

1.1 MapX的空间数据结构

  空间数据结构是GIS的基石。GIS通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从而实现地理图形和数据库的结合。如图1所示,地理信息系统采用分层管理的方法管理地图数据,同一类型的空间对象存放在相同图层中。

1.2 MapX对象模型

  MapX控件采用面向对象的方式处理地理信息系统,对地理数据的操作实际上是对各类对象的操作。MapX的基本组成单元是Object(单个对象)和Collection(集合)。其中集合包括对象,是多个对象的组合,每种对象与集合负责处理地图某一方面的功能。MapX主要包括以下对象:

  (1) Map

  Map是MapX的顶层属性,每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。

  Map对象包括一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置地图显示窗口的中心坐标。

  (2) Layers

  在MapX中,地理信息按照图层的集合(Layers Collection)表示,每张单独的地图都被表示成单独的图层,所有的图层存储在Layers集合中。Layer对象由Features对象组成,Features对象又是由Feature对象组成,Feature对应于地图中的点、线、面以及符号等地图实体。

  (3) GeoSet

  GeoSet是在GeoManager中建立的。GST文件,类似MapInfo中的WorkSpace概念,是图层及其设置的集合,用于控制程序中显示的地图。

  (4) Datasets

  在MapX中,属性数据的操作主要通过数据绑定" title="绑定">绑定实现,Datasets用于实现地图与数据的绑定。数据绑定的数据源可以是DAO、ADO、ODBC数据源、RDO、MapInfo Table文件,还可以是一个规定了格式的文本文件。要绑定一个数据源,首先要指定所绑定的图层,然后需要指定与图层中地图对象相匹配的关键字段。

  (5) Annotations

Annotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接。

2 对象动态添加

  在区域电力网络配置显示系统中,一个单独的变电站可以满足一定区域的供电需求。某个地区是否需要增加一个变电站,以满足该区域供电需求,增加了这个变电站后整个电力网络的覆盖范围达到什么水平。所以在系统中添加了某一型号的变电站后,要求该变电站的作用范围与整个区域现存的电力覆盖范围结合起来,形成并动态显示整个区域的电力网络覆盖范围,以此判定该变电站建设的必要性以及该区域的电力网络覆盖范围是否能够满足供电需求。

  变电站的建设表现在GIS显示系统中就是在地图上增加一个具有某些属性的地图对象。系统首先把各型号变电站性能参数存入数据库中,用户在系统界面上可以选择需要修建的变电站型号,系统连接数据库,读取相应的属性信息,然后采用鼠标单击的形式把所选对象安装在鼠标单击的位置,并利用MapX计算显示区域电力覆盖范围。

  该功能的实现采用重画的方式。即系统首先删除地图上现存变电站的整体作用范围,然后读取数据库中需要添加对象的基本属性和地图上现存变电站的属性数据,以这些数据为依据把地图上现存的以及需要安装的变电站的作用范围进行重画,将各个对象的作用范围进行合并;合并后的整体作用范围添加到对应图层并在对应位置添加标示即可。最后在图上显示的就是区域电力网络的整体覆盖范围。

  系统采用临时图层lyrobj存放安装对象(变电站)以及对象的整体作用范围,用Num存放临时图层上电站的数目(即区域现存变电站的数目,obj(i)表示第i个对象),对象pt(i)存放第i个电站的名称、作用距离、地理坐标等属性信息。实现地图对象添加的算法示意图如图2所示。

3 对象动态删除

  一个单独的变电站可以满足一定区域的供电需求,对于实际的某些电站,如果遭遇自然灾害或者根据需要予以拆除,那么表现在地图上就是该地图对象(电站)会被删除,删除了该电站后,整个地区的电网覆盖范围将随之发生变化。电力管理部门可以此确定在发生意外的情况下,整个电力网络是否仍可以满足供电需求。

  整个实现过程采用临时图层lyrobj存放安装对象(变电站)以及对象的整体作用范围,用Num存放临时图层上电站的数目(obj(i)表示第i个对象),对象pt(i)存放第i个电站的名称、作用距离、地理坐标等属性信息。

  该功能的实现:首先判断选中的需要删除的地图对象(变电站)obj(k),并删除数组pt()和obj()中对应需要删除的项;然后删除需要拆除的电站的标示以及本地区所有电站的覆盖范围;随后读取数组pt()中对应电站的属性值,重画除需要删除的对象以外所有电站的覆盖范围,把各个对象的作用范围进行合并,并把合并后的整体作用范围添加到对应图层,在对应位置添加标示。这样就会得到拆除一个电站后本地区电力供应的覆盖范围。实现地图对象删除的算法示意图如图3所示。

  在实际的GIS信息显示系统中,对象的动态操作是一个重要方面。利用本文介绍的这种方法开发的电力网络配置显示系统效率高、实时性强,为区域电力网络的高效配置提供了方便快捷的保障。本系统虽然基于MapX实现,但其实现地图对象动态交互操作的思路对WebGIS以及其他领域中地图对象的动态操作也有很强的借鉴意义。

参考文献

1 齐超,何新华.车辆监控地理信息系统中的地图控制与实现.计算机自动测量与控制,2001;9(1)

2 牛德力. 组件式软件及其在GIS开发中的应用.测绘学院学报, 2000;17(04)

3 李玉国,戴国忠.基于GIS组件MapX的机载辅助导航系统的设计与实现.计算机辅助设计与图形学报,2001;13(05)

4 MapInfo Corporation Mapinfo MapX Developer's Guide Version 4.5. 2000

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map