基于MO(MapObjects)的GIS工作空间的研究与开发
发布时间:2015-07-13 09:46
摘 要 GIS工作空间在地理信息系统图层管理中起到非常重要的作用,文章首先讨论了GIS(地理信息系统)工作空间概念、MO技术、文件格式基础,然后设计出MO的工作空间文件格式,并开发出MO的工作空间,最后介绍了工作空间的关键技术。
关键词 MO;工作空间;地理信息系统
0 引言
目前工作空间(工程)文件已经广泛应用于地理信息系统(GIS)相关软件中。地理信息系统是在计算机软硬件技术的支持下,采集、存储、管理、检索、分析和描述整个地球表面与地理分布的空间数据和属性数据的信息系统。随着计算机软件技术的快速发展,地理信息系统工作空间为地图可视化提供了快速简便的方式。工作空间技术集软件技术和地理信息系统技术为一体的技术。本文就工作空间技术、MO技术做些探讨和研究,并进一步开发出MO的工作空间。
1 GIS工作空间
在地理信息系统中,地图是分层显示来管理地图中的地理要素的,为了很好的对图层进行管理,GIS引入了工作空间技术。有了工作空间,用户可以方便地返回上次工作的位置,在反复使用相同的表工作时,可以同时打开使用多个不同的窗口和表。在二次开发过程中,在加载地图时不需单独加载每个窗口和表,而是直接加载一个工作空间文件即可,方便了用户操作,提高了GIS二次开发效率。在当今以ESRI公司、MapInfo公司和超图公司为代表,开发的GIS软件中大多集成了工作空间这一功能。
在ArcView中,项目文件(*.apr)也可称为工作空间文件,它保存着项目中的视图、表格、图表、图版等所有文件,并记录着当前各窗口的位置,特征选择、主题显示及使用的符号、颜色等 [1]。
在MapInfo中,工作空间(*.wor)是当前正在使用的所有表和窗口的列表,它记录了已打开的所有窗口、窗口的大小和它们在屏幕上的位置、专题地图、装饰对象、标注和字体、符号样式、线的样式以及用来显示对象的填充地图等 。
在SuperMap中,工作空间(*.smw)用于管理用户的当前工作环境,即用户在工作环境和工作过程中操作和处理的所有数据,包括:当前打开的数据源(位置、别名和打开方式)、地图、专题地图、布局、符号库、线型库等。
在MapX中工作空间(*.gst)定义为图层和设置的集合,可以控制MapX应用程序中的地图显示方式。
综上,GIS工作空间文件(工程文件)是存储地图图层及其设置的集合,控制着地图的显示方式,保存着用户设置的地图属性,工作空间文件在桌面地理信息系统软件和组件式GIS种起着越来越重要的作用,特别是在基于GIS组件二次开发中。
2 MO工作空间设计
MO(MapObjects)是ESRI公司开发的一套地图软件的组件,通过MO,利用高级编程语言,可以方便的建立用户需要的地理信息系统。MO功能强大,包含一个地图控件(Map Control)和一组强大对象。这些对象按其功能可以分为5组:地图显示对象(Map Display Object)、数据访问对象、集合图形对象、地址匹配对象和投影对象。通过地图显示对象,可用符号或专题描述画一张地图。也可加入图像做为背景,在地图上显示数据。
MO与MapX等GIS组件与可视化开发语言的集成二次开发是GIS应用开发的主流, 其中MapX具有空间文件管理功能,用户可以通过MapX的文件编辑器GeosetManager对工作空间文件进行离线式管理,用户可以设置地图图层,最后可以生成保存一个格式为*.gst地图工作空间,这个地图工作空间文件可以直接调入Map对象。其中MapX的gst文件,在二次开发过程中加载地图只需一句代码(采用Delphi+MapX,以下相同)即可实现加载一幅地SetLayers(FilePath+FileName)。而在MO中需要数句才只能加载地图的一层。如果MO具有工作空间文件功能,MO则可以更好的为GIS开发者所用,GIS开发者在加载图层时会很方便,可以减少程序员的开发时间和成本。
2.1 MO的工作空间文件格式设计
参考一些工作空间文件,MO的工作空间文件应该包括以下内容:
⑴ 工作空间文件声明和版本声明;
⑵ 地图名、修改时间、地图窗口、中心点坐标、地图层数;
⑶ 图层顺序、图层名、存储路径、图层描述、是否可见、点样式、线样式、面样式、投影坐标;
工作空间文件格式的保存使用了ini文件格式,ini文件的优点显而易见:它是文本文件,能够直接查看和编辑。在Windows操作系统中经常使用这种格式来保存系统或者程序运行时所需要的一些参数。
一般初始文件的后缀为*.ini,MO工作空间文件的后缀定为*.mows,它用名为MAP的一节存储工作空间的名字、工作空间修改时间、图幅大小、中心点坐标、层数等地图视图的基本信息,用名为Layer1、Layer2……LayerN的节来存储地图各层的层名、存储路径、是否可见、点样式、线样式、面样式、投影坐标及其单位。
格式
[Map]
Map Name=
Last Modified Date=2006-7-31 下午 12:10:18
以上是存储的地图的名称(也是工作空间文件的名称),工作空间的最后一次修改时间。
Xmin=-155.824393494221
Xmax=-95.8470813073348
Ymin=34.3006604141814
Ymax=67.3823169118809
Xcenter=-125.835737400778
Ycenter=50.8414886630311
以上存储的是地图的显示范围以及地图的中心点坐标。
Layer Count=5
这一行存储的是地图的图层数。
[Layer1]
Name=
Database=..“world
Visible=1
以上几行存储该图层的名称、存储路径、是否可见。
Symboltype=0
SymbolStyle=1
SymbolColor=48966825
SymbolSize=5
这几行存储图层的样式。
CoordinateSystem=GCS_North_American_1927
CoordinateSystemUnit=Degree
这几行存储图层的投影坐标系和投影单位。
[Layer2]
……
2.2 工作空间控件设计开发
控件是可视化编程的基础,开发人员用它们来设计用户界面以及提供给应用程序的一些非可视化性能。对于应用程序开发者来说,控件就是它们从控件面板上取得的并放在窗口上的某种事物。在这里,可以通过修改控件属性、建立事件处理过程来决定控件的外观或作用。从控件编写者的角度看,控件就是Object Pascal语言中的对象。这些对象可以封装系统提供的行为元素(如标准的Windows95/98控件)。其他对象能够完全引入新的可视化或非可视化控件,这种情况下,一个控件的代码构成了该控件的全部行为。
利用面向对象技术可以使代码重复利用,提高了程序的开发效率。控件具有“一次编写,到处使用”的特性。利用最优秀的面向对象的开发工具,Delphi以控件的方式对代码进行封装,编写了MO工作空间控件,为了实现工作空间生成与管理功能,MO工作空间控件封装了一些工作空间任务,对象结构如下图1:
图1 工作空间对象结构图
2.3 工作空间管理器的功能设计
GIS开发者需要经常对工作空间文件进行离线式管理,开发一个类似于MapX的GeoSet Manager在线管理MO地图文件有很大的实用性。
主要功能:
⑴ 文件管理功能,主要用于工作空间打开和保存,工作空间的新建和删除。新建工作空间、打开工作空间(如图2)、保存工作空间、删除工作空间。
⑵ 地图管理功能,包括地图的基本操作,如:地图放大、地图缩小、地图移动、恢复原始大小;还可以对图层设置进行管理,可以添加添加图层、删除图层、图层顺序调整、投影设置、单位设置;可以设置图层属性,如:设置图层颜色、设置点样式、设置线样式、设置面样式、标注、字体等。
⑶ 专题地图制图功能,主要用于专题地图的建立、保存、删除,可以建立单一符号图、点密度图、唯一值图、标准差图、数量分类图、渐变符号图、文本标注图。
图 2 打开的工作空间文件
3 关键技术讨论
3.1 标注
地图标注是地图的重要组成部分,用来完成图形符号无法表达的定量或定性特征。地图上的标注通常可以分为名称标注、说明标注、数字标注和标注注记。地图注记的在地图上的安排影响空间信息的表达和地图信息的阅读。在地图标注过程中有以下三种不同的标注任务:
(1)点状要素的标注:从给定区域内的点集合以及每个点的候选标注位置集合中选择最佳的位置标注集合。
(2)线状要素的标注:标注位于线的一侧,并随着地图窗口的变化动态的调整标注的位置。
(3)区域要素的标注:在区域面积足够的情况下,标注要位于区域的内部。
3.2 专题地图
图 3 人口密度图
专题地图主要突出表示一种或者几种专题要素的特点,使用各种图形风格(例如颜色或填充模式)图形化地显示地图的基础信息某方面特征的一类地图。制作专题地图是根据专题变量对地图进行渲染的过程,而所谓专题变量就是指在地图上显示的数据。专题地图表示现象的现状和分布规律及其联系,且能指出这些现象的动态变化和发展规律,有助于预测和预报,专业性强,与各学科联系密切。专题地图按其专题内容可以分为地质图、水文图、人口地图(如图3)、经济地图、环境污染图等。
3.3 数据绑定
地理信息系统数据包括空间数据和属性数据,空间数据描述地物或者现象的地理位置,属性数据描述或者现象定性或者定量指标。数据绑定就是建立空间数据和属性数据的关系,使属性数据库中的地理信息映射到地图图层上,将数据库中的属性数据与地图进行动态连结。
4 结论
本文讨论的地理信息系统中工作空间的使用的开发,对几种工作空间文件格式加以对比,开发出适合MapObjects的工作空间。为基于GIS组件MapObjects的二次开发提供了便利。提供了一些MapObjects工作空间的管理功能,有些功能还有待进一步的改进和提高。
参考文献
[1] 汤国安,陈正江,赵牡丹,刘万青,刘咏梅.ArcView地理信息系统空间分析方法.北京:科学出版社,2002
三味工作室.MapInfo6.0应用开发指南.北京:人民邮电出版社,2001
北京超图地理信息技术有限公司.SuperMap Deskpro联机帮助,2002
齐锐,屈韶琳,阳琳赟.用MapX开发地理信息系统.北京:清华大学出版社,2003
王占全,赵斯思,徐慧.地理信息系统(GIS)开发工程案例精选.北京:人民邮电出版社,2005
俞健敏.MapObjects工作空间文件的设计与实现.华东师范大学资环学院地理科学学士毕业论文,2006
孙以义.计算机地图制图.北京:科学出版社,2000
张增强.Delphi 7入门与提高实用教程.北京:中国铁道出,2003
黄杏元,马劲松,汤勤.地理信息系统概论.第二版.北京:高等教育出版社,2001