阅读:1611回复:1
MAPX应用[分享]1 组件式GIS的产生与发展 20世纪 9 0年代以来 ,软件的网络化和组件化趋 势给软件业带来新的机遇和挑战 [1]。组件技术有效 地促进了面向对象技术和分布式计算技术的发展 ,在 软件开发方面起了巨大的推动作用。组件是建立在对 象链接和嵌入 (OLE)体系上的[2],可形象地称之为即 插即用 (PlugandPlay)的软件 ,它为可视化编程工具 提供接插件 ,这样可以实现代码的重用性 ,大大增强了 编程语言的功能和效率。 目前市场上流行的GIS软件的共同特点是它们 将图形处理 ,空间查询与分析 ,属性管理及其它GIS 功能都包含在一个比较庞大的系统中。这样会带来如 下问题 :1)对于大多数用户来说 ,他们可能只需要部分 而不是全部GIS功能 ,但用户必须为购买整个GIS软 件系统而支付较高的费用。 2)要满足用户的特殊需 求 ,需要对GIS软件进行二次开发 ,而目前许多GIS 软件的二次开发工具并非标准语言。这对用户提出了 较高的要求 ,也对原有系统的改造带来许多不便。利 用ComGIS技术就可以很好地解决这样的问题。使用 ComGIS进行系统开发 ,用户就不需要购买整个GIS 软件系统 ,只要在GIS组件的基础上进行开发组装即 可 ;而且ComGIS都支持标准的开发语言 (如Visual Basic等 ),这对于专用系统的开发更快捷和便利。此 外 ,利用组件技术更容易建立InternetGIS或Intranet GIS信息系统 [3]。所以ConmGIS技术使GIS应用软 件具有高水平的服务性 ,并逐渐成为对象链接与嵌入 (OLE)技术的新标准[4]以及当今GIS软件技术的发 展潮流。 在ComGIS领域中 ,有不少GIS厂商推出了自己 的GIS组件 ,比较知名的有美国环境研究所 (ESRI)推 出的MapObjects 2.x ,MapInfo公司推出的MapX4.x 以及Intergraph公司推出的Geomedia 3.x .MapX 4.x 和其它GIS组件在对地图的常用操作 (放大、缩小、漫 游等 )、图层控制、属性数据绑定、地图信息查询等方面 功能相似 ,在地图符号、实时事件跟踪 (与GPS集成 )、 空间数据分析等方面则有一定的优势。 2 MapX组件的模型结构 MapX组件的基本组成单元是Object(单个对象 ) 和Collection(集合 ),其中集合包括对象是多个对象的 组合[5]。每种对象和集合负责处理地图某一方面的 功能。图 2表示了MapX组件的模型结构。由图 2可 以看出Layer ,DataSet ,Annotation是Map对象下面 3 个重要的分支。如果要操作地图的图层 ,就要用到 Layer对象和Layers集合 ;如果要在地图上增加文本 或符号 ,就要用到Annotation对象和Annotations集 合 ;如果要访问空间数据表 ,那就要用到DatarSet对象 和DataSets集合 ;另外从图中也可以看出 ,对象和集合 是按层次来划分的。处在最高层的是Map对象 ,其它 所有的属性和方法是从Map对象继承过来的。 图 2 MapX组件的模型结构 3 MapX的空间数据结构 空间数据结构是地理信息系统的基石。地理信息 系统就是通过这种地理空间拓扑结构建立地理图形的 空间数据模型并定义各空间数据之间的关系 ,从而实 现地理图形和数据库的结合。 从横向分析 ,MapX采取的空间数据结构是基于 空间实体和空间索引相结合的一种结构。空间实体是 地理图形的抽象模型 ,主要包括点、线、面 3种类型。 任何点、线、面实体都可以用直角坐标点x , y来表示。 点可以表示成一组坐标 ,对线和面则均被表示成多组 坐标 (x1,y1,x2,y2…xn,yn)。空间索引是查询空间实 体的一种机制 ,通过空间索引 ,就能以尽量快的速度查 询到给定坐标范围内的空间实体及其所对应的数据。 从纵向分析 ,MapX的空间数据结构是一种分层 存放的结构[6]。用户可以通过图形分层技术。根据 自已的需求或一定的标准对各种空间实体进行分层组 合 ,将一张地图分成不同图层。在GAGIS地图中 ,可 以把小区、道路、居委、行政单位等不同类型区域和地 物分别放置在不同的图层中 ,采用这种分层存放的结 构 ,可以提高图形设备的搜索速度 ,便于各种数据的灵 活调用、更新和管理。图 3说明了MapX的这种空间数据结构。 图 3 MapX的空间数据结构 4 系统构成 4. 1 系统目标 GAGIS是以上海市电子地图和人口信息为基础 , 以面向整体作战、面向快速反应、面向综合利用为目 标 ,为广大公安干警进行案件调查、统计分析以及布控 和决策提供必要的信息保证。 4. 2 应用系统组成 4. 2. 1 系统开发工具与平台 GAGIS操作平台为WindowsNTWorkstation 4. 0(Pack 6),编程语言采用可视化面向对象编程语言 - -Delphi 5. 0。Delphi是Inprise公司推出的符合工业 标准的软件开发工具 ,它全面支持面向对象技术 ,具有 高速的编译器和强大的数据库支持 [7],被广泛应用于 开发Windows应用程序。 4. 2. 2 系统数据库平台 经过技术测试 ,Oracle较其它同类产品更为稳定 , 而且Oracle有基于Linux的版本 ,稳定性、安全性都有 所提高。另外 ,Oracle基于Internet的版本为系统的 后续升级铺平了道路。所以本系统后台数据库采用 Oracle8,运行于操作系统为Linux的数据服务器上。 4. 2. 3 地理信息系统平台 地理信息系统平台采用灵活、方便的MapXv4. 5。 4. 2. 4 系统运行硬件环境 服务器端 :CPUPentiumII以上 ,内存 128MB以 上 ,硬盘 10G以上 ;客户端 :CPUPentium133以上 ,内 存 32MB以上 ,硬盘 1. 2G以上。 4. 2. 5 系统运行软件环境 前端操作系统采用Window9 8或WindowsNT Workstation 4. 0(Pack 6),应用服务器采用Windows NTServer(Pack6),数据服务器采用Linux操作系统。 4. 3 数据采集与地理编码 将上海市 1:500地图数字化并转换为MapInfo Table文件 ,并在MapInfo中完成了地图编辑与IDD 编码工作 .GAGIS地图主要分为三层 :基本层 ;信息 层 ;详细层。信息层又包括 :大图斑数据信息层 ,小图 斑数据信息层 ,信息辅助层 ,注记层等。数字化时首先 数字化信息层 ,而后数字化详细层 ,最后是基本层。 4. 4 系统的主要功能特点 4. 4. 1 地图双向快速查询 系统中的电子地图所显示的信息 ,可以精确到每 个门牌号和楼层数 ,以及所有的道路、消防龙头等城市 常见地物。实际使用时 ,基本层显示该区域内大致的 地图信息 ;信息层将所有的企事业单位、学校、居住楼 与数据库进行关联 ;详细层显示全部实地详细信息 ,为 人员定点、布控和逮捕等警力部署提供服务。因此 ,一 方面可以由数据库信息记录来定位电子地图上的具体 位置 ;另一方面可以选择地图某一区域来查询出该区 域的所有居民或企事业单位的详细信息。 4. 4. 2 浮动导航图 导航图是一个快速浏览全图的工具 ;可以指示当 前地图显示的区域 ,并可以快速定位到指定区域。导 航图中有蓝色矩形移动工具 ,通过鼠标移动导航图中 的移动工具 ,可实现在地图窗口中的迅速定位 (如 图 4)。 4. 4. 3 图层控制 MapX是按图层组织计算机地图的。用户可以依 据自身的要求 ,控制图层的显示与隐藏 ,这样可以使得 用户得到真正的符合自己要求的电子地图。通过选择 不同的图层 ,来实现地图的不同表现层次。 4. 4. 4 围追堵截 这项功能可以自动确定响应警区和路段 ,输入堵 截半径后 ,系统自动确定堵截路口以及相应的支援警 区 ,路口及支援警区在地图上闪烁显示 ,从而实现在地 图上自动对交通要道进行堵截。 4. 4. 5 警力布控 用户可以轻松地在电子地图上制作出直观的实时 的警力布控图 ,通过描述任务的具体内容以及对人员 和装备的配置将行动具体化和明确化 ,作为指导干警 执行任务时的行动指南。鼠标单击“警力布控”按钮 , 在地图上对需要进行警力布控的点进行点击 ,地图将 显示为如图 5所示。 图 5 警力布控图 4. 4. 6 犯罪分析 在GAGIS中利用MapX的空间分析功能能够形 象地显示出案犯的作案地点 ,受害者的居住地点以及 警员巡逻区域 (叠加分析与缓冲区分析 ),并且将这些 数据信息以地图的方式输出 ,分发到各个地区的警察 分局中。并将各社区的警力资源与该地区的需求相互 联系 ,对成千上万的案情报告分门别类 ,并结合多个治 安服务设施点进行综合分析 ,使得部门策划者全面掌 握信息 ,重新调整各管区的警员配置。 5 开发体会 通过GAGIS的开发 ,我们总结出用MapX开发应 用地理信息系统的一般方法 : 5. 1 创建数据库 空间数据库可以通过两种方法创建 ,一种是通过MapX的图层生成功能创建。MapX生成的每一图层 都对应一张表 (table),该表中除了存有地理对象的位 置坐标以外 ,还可以包含其他属性字段 ;另一种方法是 通过导入带有地理位置信息的其他数据库生成[8]。 MapX可以通过数据绑定把这些数据库中的地理信息 映射到地图图层上 ,MapX支持对多种常用数据库的 访问。 5 . 2 设置图层控制和地图投影 在把地图加入到MapX之前 ,我们可以使用 MapX附带的图层管理工具GeosetManger把要加入 的图层匹配在一起 ,建成一个图层组 ,该图层组规定了 其中各个图层的名称、内容、属性及各图层之间的显示 顺序。MapX中可以给图层设置四种属性 :可显示 ,可 选择 ,可编辑和自动标注。一般图层的属性是可显示 的 ,需要查询的图层设置为可选择 ,需要修改的图层设 置为可编辑 ,而自动标注可以自动显示图层中地理对 象的标签。合理地设置这些属性将有助于系统实现地 理信息的维护和查询功能。 在匹配各个图层时 ,应该注意各个图层投影的设 置。全部图层必须使用一致的投影方法才能精确匹 配。MapX中的地图分为地球地图和非地球地图 ,地 球地图中对象的坐标用经纬度来表示 ,非地球地图中 对象的坐标通常是相对坐标 ,是相对于图中的某个基 准点来设置的。如果图层的坐标不一致的话 ,必须先 转换坐标才能进行匹配。 5 . 3 设计MapX中地理信息的编辑功能 MapX提供标准的地理对象类型定义 ,在MapX 所提供的点、线、面类型选择对话框中可以方便地选择 地理对象的类型 ,包括所使用的符号的形状 ,颜色 ,大 小等属性。利用MapX提供的画图工具 ,可以为用户 设计出多种多样的地理对象生成工具。利用MapX提 供的多种地理信息对象的选择工具 (如矩形、圆形选择 工具 ),我们可以调用这些选择工具并和MapX所提供 的编辑 (删除、修改等 )地理对象功能相结合以完成地 理信息系统中地理对象的编辑操作。但要注意 ,对于 地理数据和非地理数据要分别对待。 5 . 4 设计MapX中地理信息的查询功能和分析统计 功能 对于地理信息系统中所要求的有关地理信息查询 功能和分析统计功能 ,MapX提供了一定的查询和分 析手段 ,如MapX可以根据图层表中的字段值查询相 对应的地理对象 ;可以提供对应于图层表中某个或某 几个字段的分析饼图等。对于非地理信息 ,我们需要 依据系统的具体要求用面向对象的语言设计查询和分 析统计功能。 6 结束语 在开发地理信息系统的过程中 ,首先要考虑的就 是选择好的开发工具。单独使用可视化的编程语言不 能方便地实现地理地图功能 ,而通常的GIS软件却是 一个非常专业的界面 ,并且不能完全满足各种地理信 息系统用户的需要 ,而使用“GIS组件 +面向对象可视 化编程语言”的模式就比较适合于各种应用的需要。 通过对应用系统“上海城市公安综合信息管理系 统 (GAGIS)”的开发 ,我们深切体会到了MapX具有的 优点 :①与Delphi连接性很好 ,图形显示速度较快 ;② 使用方便 ,仅少量代码就可以实现基本的GIS功能 ; ③强大的地理信息查询与统计功能。MapX可以和远 程数据库挂接 ,可以使用SQL语句进行查询 ,可以通 过数据绑定而把带有X、Y坐标的数据库记录显示在 地图中 ,并可以按照数据的地理信息进行多种多样的 统计与查询。MapX还可以通过投影和坐标变换把实 际地图中的地理信息数字化到电子地图中 ,如果和 GPS(全球定位 )系统相结合 ,MapX还可以显示大面 积上的移动对象。这些特点也正是MapX适用于开发 地理信息系统的原因。 参考文献 : [1] 边馥苓 .GIS地理信息系统原理和方法 [M].北京 :测绘出版社 , 19 9 6. [2] 周 涛 .GIS软件两个热点技术浅析 [J].测绘通报 , 19 9 9 ,( 3) :40 - 41. [3] 宋关福 ,钟耳顺 .组件式地理信息系统研究与开发 [J].中国图象 图形学报 , 19 9 8, ( 5) . [4] ZhongErshun ,SongGuanfu ,WangErqi.DevelopmentofaCompo nentsGISbasedonApplications [C ].ProceedingsofIEAS’ 9 7&IWGIS’9 7,Volumel,August 18- 22. 19 9 7BeijingChina. [5] MapXDevelop’sGuide[Z].MapInfoCorportion . [6] MapXOnlineHelp[Z].MapInfoCorportion . [7] InpriseCorporation .Delphi 5标准教程 [M ].北京 :清华大学出版 社 , 19 9 9 . [8] MapInfo通用技术白皮书 [R].北京 :北大方正 , 2000. 作者简介 : 范大凯 ( 19 75- ) ,男 ,河南省开封市人 ,助理工程师 ,现华东师范大 学地图学与地理信息系统专业硕士研究生 ,主要攻研方向为遥感与城 市地理信息系统应用与开发研究。 ·53·东北测绘 季刊 第 24卷 2001年第 2期 |
|
|
1楼#
发布于:2003-12-06 16:25
有没有OPENGL开发三维GIS的示例代码?
|
|