APP下载

基于ArcEngine的基础地理信息系统的设计与实现

2011-09-27朱振华

地理空间信息 2011年1期
关键词:缓冲区控件图层

朱振华,侯 敏

(中国地质大学 (北京)土地科学技术学院,北京 100083)

基于ArcEngine的基础地理信息系统的设计与实现

朱振华,侯 敏

(中国地质大学 (北京)土地科学技术学院,北京 100083)

介绍了利用ArcEngine技术开发基础GIS软件的特点,重点讨论了在GIS软件中查询功能、缓冲区功能和注记随地图缩放功能的实现。

组件GIS;基础地理信息系统;第三方控件;ArcEngine;.NET

地理信息系统已经广泛应用于众多领域,为各行业提供了高效的空间信息处理能力和强大的决策支持服务[1]。这就需要 GIS开发人员构建专业且易于使用的GIS软件,不仅要有通用的GIS功能和专业领域功能,还要有友好的交互式操作。从底层开始构建这些专业系统,不仅耗费时间,而且增加软件的开发成本。组件式GIS把GIS技术同嵌入式技术融合在一起,形成嵌入式地理空间集成平台,是GIS研究的重要趋势和GIS产业发展的方向之一[2]。ArcEngine是ArcGISEngine的简称,是ESRI公司开发的一组完备且可以打包的嵌入式GIS组件库。开发人员可以在应用程序中创建或扩展GIS的功能,自定义专业产品。因此在通用的开发平台下嵌入GIS功能,能很好地满足广大GIS用户的需求。

1 ArcEngine简介

ArcEngine组件产品发布之前,ESRI公司提供的是ArcObjects公用组件库(以下简称AO),它是基于M icrosoft COM技术开发的一套COM组件对象集,是专门为开发人员提供的二次开发组件。该组件集提供了几乎全部的底层GIS功能,就连ArcGIS软件本身都是使用AO的组件开发出来的[3]。但使用AO开发时,需要依附于 ArcGIS平台,开发人员只有在安装了ArcGIS产品后,才能利用其提供的组件对象进行开发。

ArcEngine(以下简称AE)提取了AO组件库中的核心功能,对 AO中的大部分接口、类、库进行封装所构成嵌入式组件。AE中的组件接口、方法、属性与AO是相同的。AE是独立的嵌入式开发平台,开发人员无须ArcGISDesktop支持;其具备灵活、快速的开发和功能扩展能力,功能完善,稳定性较好。

不论是AE还是AO都具有面向对象的特性,它们都支持类、对象、继承等面向对象的特性。同时类下面还定义了不同的接口,接口中包含了不同的方法和属性,接口之间有接口查询(Query Interface,简称QI)和接口继承(Interface Inheritance)。例如接口查询(QI)就是从对象的一个接口查询到另一个接口定义的属性和方法。而要满足两个接口之间可以进行接口查询,条件是它们要同属于一个类。本文以全国某一时期采集的基础地理数据为基础,采用.NET为开发平台,实现了GIS基础信息系统开发,探讨了基于AE的基础地理信息系统的基本原理和系统功能的实现过程。

2 基础地理信息系统总体设计

2.1 系统目标及功能

系统的目标是开发出一个区域基础地理信息查询及制图的系统,系统的开发采用了C/S模式。.NET平台下,C#是作为第一语言,集中了所有关于软件开发和软件工程的所有最新成果,且与 AE有很好的兼容性,因此本系统选择C#语言进行基于AE的二次开发。系统具有以下功能:1)地理数据的管理及显示;2)要素(Feature)与元素(Element)编辑功能;3)在版式视图(Layout)添加制图元素,进行制图以及专题图;4)要素的空间查询功能和属性查询;5)空间分析功能,主要包括缓冲区分析和叠加分析;6)用户登陆,添加,操作权限等管理。系统是在.NET平台下开发的,系统框架图和主要功能模块如图1、2所示。

图1 系统框架图

图2 系统功能模块图

2.2 系统的数据库设计

数据库是基于GIS的各种应用系统的核心组成部分。本系统采用 GeoDataBase来统一管理空间数据和属性数据。GeoDataBase是第三代数据库,其最大的特点就是一个基于面向对象模型的关系数据库。图层数据主要是以 FeatureClass(要素类)的形式存储在 GeoDataBase中,而图层的分类依据是根据其几何形状分为 Point、Polyline、Polygon等类型的要素图层。各要素的几何属性则是 Point、Polyline、Polygon这三种类型;要素的其他属性信息则由其代表的现实地物的基本信息来确定,这些基本信息是用户比较关心的信息,如人口、面积等。

3 系统主要功能的实现

系统采用了用户熟悉的Windows界面风格,运用对话框、工具条等操作方式,利用.Net的图形用户界面设置成适合专业使用的用户界面。在工具条的设计方面,使用了第三方控件软件 Infragistics NetAdvantage2006,在本系统中主要使用了浮动工具条,以增强界面的美观,系统的主界面如图3所示。

图3 系统主界面

3.1 查询功能的实现

查询功能包括属性查询和空间查询。属性查询是通过设置属性字段的条件,获得符合条件的要素,并在图层中闪烁、高亮显示;该查询主要用到IQueryFilter等接口。而空间查询分为点击查询、拉框查询、邻域查询。这些都是基于空间位置的查询,对于查询到的要素会闪烁显示,其详细的属性信息会显示在TreeView控件所在的窗体中。空间查询所用的接口主要有ItopologicalOperator、ISpatialFilter。需说明的是,只有图层是可选的情况下,才能选中该图层中的要素。图 4是属性查询的图例,图5是拉框查询的图例。

图4 属性查询

图5 拉框(多边形)查询

3.2 缓冲区功能的实现

缓冲区功能是根据点、线、面的实体,自动建立其周围一定宽度范围内的缓冲区多边形实体。在缓冲区内,可选图层上的要素将被选中。该功能的实现主要用到的接口是ItopologicalOperator和ISpatialFilter,但在实现的过程中要考虑如何显示要素的问题,因为不同类型的要素显示时所用的接口也不同,如点要素的显示使用IMarkerSymbol;线要素的显示使用的是ILineSymbol;面要素的显示要使用IFillSymbol。因此需要循环判断每个要素的几何类型,再使用正确的显示符号(Symbol)。选中的要素还能显示其主要信息,并在地图上定位(见图6)。

3.3 注记随地图缩放的实现

地图的标注是让用户能够一目了然地获取地图的信息。如果使用AE中提供的TextElement对象来添加标注,需要对注记的显示位置,显示样式进行控制,过程较为繁琐。在AE中提供了专门用于标注操作的对象供程序员使用,这种方式比标注方法要复杂,但该过程是自动进行的,不需用户干预,注记内容会保存到地理数据库中。本系统使用了这种自动化的方法,所用的接口主要是 IannotateLayerPropertiesCollection和IAnnotationProperties。但是以上两种方法都不能实现标注文字随视图缩放而自动缩放,需要在MapControl的OnExtentUpdated视图更新事件中添加改变字体大小的参数代码。字体的大小值则根据当前视图的大小按一定比例计算决定(见图7)。

图7 注记随地图缩放

4 结 语

基于基础地理信息系统的设计与开发实例,探讨了GIS以及AE组件技术在基础地理信息管理应用的实现方法。AE作为基于AO构建的嵌入式开发产品,携带有很多控件,可以完全脱离ArcGIS环境,简化了开发难度,同时将AE组件技术同第三方控件结合进行系统开发,也使得系统界面美观,符合Windows界面风格,方便用户使用。相对于底层开发而言,基于AE组件技术和第三方控件的开发技术大大提高了开发效率,降低了成本;提高了系统的可扩展性、灵活性,显示了组件GIS开发的优势。

[1] 韩鹏,徐冠华.地理信息系统开发[M].武汉:武汉大学出版社,2005

[2] 兰小机,王飞,彭涛.基于ArcEngine的查询信息系统的设计与实现[J].金属矿山,2008,2(02):112-114

[3] 蒋波涛.ArcObjects开发基础与技巧--基于VisualBasic.NET [M].武汉:武汉大学出版社,2006

[4] 张伟光,宫辉力,李晓娟,等.基于ArcEngine的北京房屋普查信息系统设计与实现 [J].首都师范大学学报:自然科学版,2007,6(03):95-98

[5] 朱仕杰,南卓铜.基于ArcEngine的GIS软件框架建设 [J].遥感技术与应用,2006,2(14):385-390

[6] 王志恒,杨国东,吴琼,等.基于ArcEngine的虚拟校园信息管理系统设计与实现[J].地理信息世界,2008,6(03):81-84

[7] 谢晓慧,向南平.基于ArcGISEngine的开发原理和方法探讨[J].城市勘测,2006(02):46-48

Design and Implementation of the Fundamental Geographic In formation System Based on ArcEngine

by Zhu Zhenhua

This paper described features of Arc Engine technology for developing fundamental GIS softwares which focused on the realizations of some specific functions,including query,buffer analysis and annotation varying with the zoom of the map.

com GIS,fundamental geographic information system,the third control Arc Engine,.NET (Page:88)

P208

B

1672-4623(2011)01-0088-03

2009-08-07

朱振华,硕士,研究方向为GIS开发与应用。

猜你喜欢

缓冲区控件图层
关于.net控件数组的探讨
基于网络聚类与自适应概率的数据库缓冲区替换*
巧用混合图层 制作抽象动感森林
图层法在地理区域图读图中的应用
跟我学添加真实的光照效果
关键链技术缓冲区的确定方法研究
初涉缓冲区
ASP.NET服务器端验证控件的使用
国外建筑CAD图层标准发展现状与研究
AVS标准中的视频码流缓冲区校验模型分析