2、利用目前流行的 GIS 软件平台进行开发
目前 GIS 软件 ,国际上比较流行的是:Arc Info系列 ,Map Info 系列 , SuperMap 系列产品等。国产GIS 软件中 ,以中国地质大学的 MA P GIS 为代表。这些平台都提供了用户进行二次开发的工具和接口 ,通过二次开发亦可满足很多客户的不同需求 ,并且开发简便 ,迅速见效。这里我们不对其二次开发的方法进行深究 ,而是就目前 GIS 软件与当前软件技术的发展方向相结合而朝组件式的开发方向进行探讨。这种趋势即由过去厂家提供了全部系统或者具有二次开发功能的软件过渡到提供组件由用户自己再开发的方向上来。GIS 技术的发展 ,在软件模式上经历了功能模块、包式软件、核心式软件 , 从而发展到组件式 GIS 和 Web GIS 的过程。传统 GIS 虽然在功能上已经比较成熟 , 但是由于这些系统多是基于十多年前的软件技术开发的 ,属于独立封闭的系统。同时 , GIS 软件变得日益庞大 ,用户难以掌握 , 费用昂贵 , 阻碍了 GIS 的普及和应用。组件式 GIS 的出现为传统 GIS 面临的多种问题提供了全新的解决思路。组件式 GIS的基本思想是把 GIS 的各大功能模块划分为几个控件 ,每个控件完成不同的功能。各个 GIS 控件之间 ,以及 GIS 控件与其它非 GIS 控件之间 ,可以方便地通过可视化的软件开发工具集成起来 ,形成最终的 GIS 应用。控件如同一堆各式各样的积木 ,他们分别实现不同的功能(包括 GIS 和非 GIS功能) ,根据需要把实现各种功能的 ”积木”搭建起来 ,就构成应用系统。
目前应用比较广泛的是:
Map Info 开发的 Map X , 以及 ER IS 公司开发的MapObject s 。下面将重点对利用 Map Info 公司开发的 Map X 进行 GIS 软件开发特点以及主要过程进行分析并与 MapObject s 进行比较。
Map X 是 Map Info 公司向用户提供的具有强大地图分析功能的 ActiveX 控件产品。由于它是一种基于 Windows 操作系统的标准控件 , 因而能支持绝大多数标准的可视化开发环境如 Visual C + + 、Visual Basic 、Delp hi 、PowerBuilder 等。编程人员在开发过程中可以选用自己最熟悉的开发语言 ,轻松地将地图功能嵌入到应用中 ,并且可以脱离 Map Info 的软件平台运行。利用 Map X ,能够简单快速地在企业应用中嵌入地图化功能 ,增强企业应用的空间分析能力 , 实现企业应用的增值。
Map X 提供了各种工具、属性和方法 ,熟练的运用这些工具、属性、方法通过编程可以满足不同开发需求。
要快速 ,深入的理解 Map X ,我们可以从下面两个方面入手 ,一方面是 Map X 的空间数据结构 ,另一方面是 Map X 的基本属性。理解了这两方面 ,又具备一定的编程能力 ,结合 Map X 的开发手册 ,就能开发出所需要的 GIS 运用系统。
(1) Map X 的空间数据结构
空间数据结构是 GIS 的基石,GIS 就是通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系 ,从而实现地理图形和数据库的结合。
从横向分析 ,Map X 采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。空间实体是地理图形的抽象模型 ,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点 x 、y 来表示。点可以表示成一组坐标 ( x ,y) ,对于线和面 , 则均被表示成多组坐标 ( x1 , y1 ; x2 , y2 ;xn ,yn) 。空间索引是查询空间实体的一种机制 ,
通过空间索引 ,就能够以尽量快的速度查询到给定坐标范围内的空间实体及其所对应的数据。
从纵向分析 ,Map X 的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术 ,根据自己的需求或一定的标准对各种空间实体进行分层组合 ,将一张地图分成不同图层。采用这种分层存放的结构 ,可以提高图形的搜索速度 ,便于各种不同数据的灵活调用、更新和管理。
2 .2 Map X 的基本属性
有
放大、缩小、漫游等增加、移走、设置当前层
有
1. 通过鼠标选取特征
2. 通过 SQL 查找特征
3. 通过空间操作选取特征
有
有
有
较弱
有
较强
无
有
VC、VB 、PowerBuilder 、
Delphi 、Lotus Notes 等
·图( Map)
每个 Map 对象主要包括 Dataset s 、Layers 、An2notations 三个对象集合。
Map 对象有一些主要的属性 ,如 Zoom 用来设置放大级别(在地图上显示的大小) , Rotation 控制地图的旋转角度 , CenterX 和 Center Y 用于设置 x和 y 的坐标系 , 这要取决于地图的投影。Map 对象的许多属性本身又是一个对象 ,比如说一幅地图由多个图层组成 ,则在一个 Map 对象中存在一个单独的 layers 集合 ,其中包含所有图层的信息。·图层(Layers)在 Map X 中 ,每张单独的地图都被表示成单独的一个图层 , 所有的图层存储在 layers 集合中。Layers 集合由 Layer 对象组成 ,按顺序编号为 0 到n 。Layer 对象由 feat ures 对象组成 ,feat ures 对象又是由 Feat ure 对象组成 ,对应于地图中的点、线、区域或符号。
最上面一层为 Layers (1) ,Layers (2) 位于 Lay2ers (1) 的下面 , 以次类推。最下面的图层最先绘制 ,最上面的图层最后绘制。在应用程序中 ,合理地安排好每层在 Layers 中的顺序是至关重要的。比如说有两个图层 ,一层为点 ,一层为区域 ,则应将点层放到区域层的上方 ,否则区域会将点覆盖。另外 ,在进行地图选择操作时 ,根据要求调整图层的顺序也是十分重要的。Map X 中的选择工具总是从
顺序也是十分重要的。Map X 中的选择工具总是从可选择图层中的最上层开始选择 ,如果在地图上的同一位置存在多个位于不同层的地图对象 ,其结果是很难精确地选择到目标对象。因此 ,最好将被选择图层提到最上层显示。
.地理集( GeoSet s)
GeoSet 是在 GeoManager 中建立好的。 GST 文件 ,类似 Map Info 中的 WorkSpace 概念 ,是图层及其设置的集合 ,控制程序中显示的地图。也可以在运行阶段设置 GeoSet , 此时将导致已经加载的所有图层和 DataSet 被删除而由 GeoSet 中定义的图层所代替。如果单纯地想删除所有图层 , 只需给GeoSet 赋一个空字符串即可。可以使用 GeoSet Manager 程序来管理 GeoSet 文件 ( 3 。 GST) 。默
认情况下。 GST 文件存储在。 。 。 map x maps 目
录下 , 可以调用 GeoDictionary Manager 程序进行修改 ,指向用户程序数据所在的位置。
·数据集(Dataset s)
Dataset s 用于实现地图与数据的绑定。例如 ,
一家房地产商将其开发的不同小区的销售情况的数据库和对应区域的数字地图绑定 ,可以在地图上形象地显示出不同区域销售情况的趋势以及和小区周边环境的关系。建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配。要实现这一过程 , 必须首先将地图在 GeoDictionary 中注册。
·标注(Annotations)
Annotations 集合提供了操纵地图中文字和符
号的简单方法。Annotations 位于所有其它图层的上方并且不与任何数据连接 ,类似于 Map Info 中的透明图层。
Annotations 包括以下主要的属性与方法: AddSymbol 在 Annotations 中增加符号 , 符号类型使用 Map 。 Default Style 定义; Add Text 在 Annota2tions 中增加文本; Remove 删除特定的标注; Type
取值为 miSymbolAnnotation 或 mi TextAnnotation 。
Annotations 还有一个非常重要的属性 Grap h2
ic ,其定义为 Grap hic 对象 ,在该对象中包含了符号或文本的样式、位置等信息 ,即 Grap hic 的 Caption 、Position 、St yle 、X、Y 属性。如 Annotations 的 Type属性定义为 mi TextAnnotation ,则可以定义 Grap h2ic 的 Caption 属性设置标注的字符串。
·可创建对象
在 Map X 对象模型中 ,以下对象是可以被创建的:
Affine Transform , BindLayer , Bit map Symbols , CoordSys , Dat um , Feat ure , Fields , Layer Info , Map , ODBCQuery Info , Part s , Point , Point s , Rectangle , RowValue , RowValues , Style , Variables , Notes2
Query Info ,NotesView Info 。
综上所述 ,我们可以根据具体开发任务的需要来选择开发方式 ,笔者利用 Map X 和 GPS 技术实现的公交调度指挥系统 ,不仅开发周期短 ,而且系统运行稳定 ,并具有很好的可扩充性。随着通信技术以及 GIS 技术的发展以及市场需求不断增加 ,该开发方式将会给我们带来更大的利益。毫无疑问 ,组件式 GIS 技术将给整个 GIS 技术体系和应用模式带来巨大的影响。
结束语
从GIS的出现,到现在短短几十年,它已经融入到了这个世界,改变了人们的生活方式。它作为信息产业的一个新人,却在里面扮演着重要的角色,正以前所未有的速度发展。我觉得我们应该吸取当前GIS中的优点,结合当代的新兴技术,更好的促进GIS的发展。GIS已经深入到了各行各业,随着GIS越来越好的发展,它将会在我们的生活中扮演着越来越重要的角色,同时我们也会越来越依赖它。可是世界却因为它增加更多未知与可能,而这正是当代社会所需要的。新的地理信息时代,我们将会迎来更多挑战,新的地理信息时代,世界会变得更好。
评论
查看更多