转帖————构建基于ArcGIS 9的新一代基础地理信息系统平台

seugis 2005-01-21 05:59:30
本文主要介绍如何基于ArcGIS 9构建新一代基础地理信息系统平台,并论述了建立基础地理信息系统平台的数据平台、服务平台和应用平台的具体建设思路。对于服务平台,本文提出三种思路来阐述,并分析这些思路的优缺点。

关键词:地理信息系统;空间数据;ArcGIS;WebServices;WebControl;政府地理信息系统平台;水务一体化管理系统

1 引言
随着当今计算机技术的飞速发展,也带来了地理信息系统(GIS)的飞速发展。目前GIS正在由单点计算转向分布式计算,应用的领域也不断扩展。特别是J2EE和.net技术的发展和应用,开拓了WebGIS新的技术思路。本文讨论的基础地理信息系统平台,不是一个纯粹的GIS平台,而是在GIS平台的基础上,根据实际需求,进一步扩展和封装,搭建一个面向实际应用的基础地理信息系统平台,服务于具体的应用系统。ESRI 最新发布的ArcGIS 9,拥有强大和完善的GIS服务架构,支持高度的可伸缩性二次开发。结合基础地理信息系统平台的特点和ArcGIS 9的新特性,笔者认为采用ArcGIS 9构建一个基础地理信息系统平台,具有很大的优越性,下面我们将会进一步论述。

2 基础地理信息系统平台的构成
通过分析基础地理信息系统平台的需求,可以得出,基础平台的核心是要解决三个问题:一要解决数据管理;二要提供后台服务和拥有二次开发能力;三是要提供基础的应用,以便进一步扩展,为实际系统服务。归纳总结,笔者认为,基础地理信息系统平台应该由数据平台、服务平台和应用平台组成:

1)数据平台

数据平台主要用来收集、生产、加工、维护和管理空间数据。数据平台具体应该包括地图加工、属性数据管理、数据转换、数据备份以及数据统一管理等功能。除此之外,数据平台还应该包括对数据的安全管理,如进行权限控制,保证数据的安全。

2)服务平台

服务平台是整个基础地理信息系统平台的核心,应该具有较高的开放性和二次开发能力。服务平台一方面应该具有核心服务,如地图服务、属性服务、空间分析服务、元数据服务和专题图服务等,另一方面应该提供强大的开发组件群,最关键的是要提供强大的Web开发能力,才能满足基础地理信息系统平台的开放性和扩展性需求。

3)应用平台

应用平台主要包括地图浏览模块、信息查询模块、空间分析模块、专题图制作模块和数据共享模块等。这些模块作为一个基础地理信息系统平台必需的基础应用模块,可以在这些模块的基础上进一步开发实际的应用系统。

3 ArcGIS 9架构介绍
ESRI今年发布的ArcGIS 9,笔者认为是ESRI发布的迄今为止功能最强大、最完善的一个版本。ArcGIS 9除了保留原ArcGIS的良好特性外,新版本进行了革命性的突破,主要体现在:

(1)合并ArcObjects和MapObjects为ArcEngine

笔者认为ArcEngine得出现是ESRI划时代的突破,其优化了核心组件架构,推出更强大的一系列二次开发控件,同时支持COM、Java和.net开发,并可将成果进行分发,从而大大降低了开发难度,也大大提高了GIS应用程序的开发效率。

(2)ArcGIS Server迎来了真正的WebGIS开发时代

基于ArcIMS开发WebGIS应用系统,虽然配置不是很复杂,但其开放性、灵活性和扩展性总不尽人意。而ArcGIS Server的出现完全改变了这种束缚:采用Web模板、Web控件以及Web服务,WebGIS应用开发完全在一个可视化的环境中进行定制,大大提高了开发效率。

ArcGIS 9新的体系框架如图3.1.1所示,空间数据引擎为SDE,同时进一步完善GeoDatabase空间数据模型;核心服务包括ArcGIS Server和ArcIMS;组件层为ArcEngine及相关扩展模块;桌面应用层包括ArcInfo、ArcEditor、ArcView等。在每个层,都提供了二次开发接口,彼此互相关联,形成一个严密的体系。

为了搭建一个基础地理信息系统平台,需要用到ArcGIS体系中几个核心模块: ArcEngine、ArcGIS Server以及ArcIMS,以下将作简要介绍。

3.1 ArcEngine介绍
笔者前面已经说过,ArcEngine是ArcGIS划时代的一个产品,主要原因在于其提供了完美的组件框架和控件框架,为二次开发者提供了随心所欲的开发利器。对于ArcEngine,ESRI定位于提供嵌入式的GIS组件,能用来在一个组织内建立应用,为用户提供有针对性的GIS功能,为每个用户的特定需求提供有针对性的GIS功能实现的基础。实际上,根据笔者研究,发现ArcEngine应用远不止这些。理论上讲,通过ArcEngine完全实现ArcInfo桌面应用系统甚至ArcGIS Server,这也为我们后面讨论实现平台服务提供可能。

3.2 ArcGIS Server介绍
ArcGIS Server是ArGIS 9全新的一个服务器,其主要用于构建集中管理、支持多用户的企业级GIS应用的平台。ArcGIS Server提供了丰富的GIS功能,例如地图、定位器和用在中央服务器应用中的软件对象。开发者使用ArcGIS Server可以构建Web应用、Web服务、以及其它运行在标准的.NET和J2EE Web服务器上的企业应用。

ArcGIS Server包含两个主要部件:GIS服务器和.NET与Java的Web应用开发框架(ADF)。GIS服务器ArcObjects对象的宿主,供Web应用和企业应用使用。它包含核心的ArcObjects库,并为ArcObjects能在一个集中的、共享的服务器中运行提供一个灵活的环境。ADF允许用户使用运行在GIS服务器上的ArcObjects来构建和部署.NET或Java的桌面和Web应用。同时也提供了集中的、多用户的geodatabase编辑。

3.4 ArcIMS介绍
ArcIMS是ArcGIS家族中用来进行GIS 地图、数据和元数据的网络发布服务器。在ArcGIS 9中ArcIMS得到了进一步扩展。ArcIMS使网站能够提供GIS数据、交互式地图、元数据目录以及特定的GIS应用。通常,ArcIMS用户通过他们的Web浏览器,借助ArcIMS 内含的HTML或Java应用程序来访问这些GIS服务。除此以外,ArcIMS服务还能够被更多的客户端访问,如ArcGIS Desktop、ArcGIS Engine应用、ArcReader、ArcPad、ArcGIS Server节点、MapObjects for Java应用以及各种使用HTTP和XML进行网络通讯的无线设备。

ArcIMS主要提供多种网络发布功能,如影像渲染、要素流功能、数据查询、数据提取、地理编码、元数据目录服务、元数据目录浏览和搜索应用、网络地图应用等。可以看出,ArcIMS提供了强大的地图Web发布的手段,几乎为实现基础地理信息系统平台提供全部功能。

4 构建基于ArcGIS 9的基础地理信息系统平台
前面我们提到,对于一个基础地理信息系统平台来说,其核心包括数据平台、服务平台(包括开发平台)、应用平台。下面我们将具体阐述三个平台的包含内容和设计思路。

4.1数据平台
数据平台主要用来完成地图加工、属性数据管理、数据转换、数据备份和数据管理等功能,作为基础地理信息系统,应该提供一个集中的数据管理系统,实现以下功能:

4.1.1 地图加工
地图加工可以采用ArcGIS提供的ArcInfo、ArcEditor或者ArcView来实现,也可以通过ArcEngine来开发一个地图加工模块。

地图加工应该提供矢量图形编辑功能、图形操作功能。主要包括:

1)图形编辑操作

增加要素(点、线、面)、删除要素、移动要素、拷贝要素、旋转要素等编辑操作。

2)注记操作与编辑

包括属性转注记、直接注记。同时可以设置注记方向、字体、字体颜色、字体大小等。

4.1.2 属性管理
用来实现空间数据库图和属性一体化,可以通过图来修改和录入相关的属性数据。属性录入提供表格录入的方式。

4.1.3 数据转换
主要提供Shape、E00、DWG等格式的数据导入和导出功能。同时应该提供其它数据格式导入和导出功能,实现数据转换。

4.1.4 数据备份
数据备份可以通过数据库自身备份和利用SDE备份功能。通过SDE的命令可以实现全部或者增量备份。

4.1.5 数据安全
数据管理主要是指建立一套数据管理机制,对数据访问实现日志记录以及进行访问权限设置等。

1)访问日志记录

日志记录是数据平台和重要的功能,应该能详细记录数据被访问、修改、删除等操作时间、访问者来源等。

2)数据权限设置

为了实现数据安全,必须对数据进行访问权限设置,可以实现对特定人员进行设置,也可以设置某个角色。权限控制可以到某个具体的图层或者属性表。

4.1.6集成数据管理
将上述模块集成到一个桌面环境下,来实现对空间数据和属性数据的统一管理,也实现图形与属性互动操作。集成数据管理系统可以采用ArcEngine来实现。

4.3服务平台
服务平台是基础地理系统平台的核心平台,提供核心的后台支撑服务,是整合地理信息系统平台的关键部分。笔者认为,服务平台是少应该包括以下服务:

1)地图服务

提供生成地图的影像数据,同时可获取到空间层的详细信息。

2)属性服务

提供空间查询(点选、框选、多边性选以及BUFFER选择)和数据查询。

3)空间分析服务

提供核心的空间分析服务,如网络分析、BUFFER分析、3D分析等。

4)专题图服务

提供专题图服务,如实现等值线、彩色渲染图、三维面图、饼状专题图、直方专题图等。

5)元数据服务

提供浏览和查找元数据的服务。

除了以上这些主要服务外,还应该提供位置服务、负载均衡服务、编辑服务等,本文将不再详述。作为一个基础地理信息系统平台的服务平台,除了提供核心服务,还有一个重要的功能就是提供二次开发接口。实际上,当今时代已经完全进入了Web时代,服务平台所提供的二次开发接口应该主要是Web开发接口。针对这种需求,我们可以采用三种方案来实现服务平台:ArcIMS、ArcGIS Server以及基于ArcEngine构建的服务平台,下面我们将分别论述这三种方式的优缺点。

...全文
401 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
南山老沙 2010-06-10
  • 打赏
  • 举报
回复
有没基于ArcIMS的网络分析,即路径分析?
seugis 2005-03-02
  • 打赏
  • 举报
回复
学gis跟着esri走没错的
jgo 2005-03-01
  • 打赏
  • 举报
回复
不错,让我对gis系统的服务框架有了一个很好的了解。++
qndt 2005-02-05
  • 打赏
  • 举报
回复
好文章,谢谢
MyCrooner 2005-02-03
  • 打赏
  • 举报
回复
好啊,兄弟是ArcGis的代理吗
seugis 2005-01-21
  • 打赏
  • 举报
回复
4.3.1 基于ArcIMS的方案
前面已经介绍过,ArcIMS拥有强大的地图发布功能特性,还包括一整套完善的后台服务。基于ArcIMS构建的基础地理信息平台的框架。

笔者认为,基于ArcIMS搭建服务平台存在一定的优缺点,优点在于其完善的地图发布功能、数据获取服务和元数据服务等功能,构建一个服务平台的速度相对较快;缺点是ArcIMS的二次开发的随意性不够高。这种方案对于要求二次开发不是很高的系统平台来说是一个不错的选择。

4.3.2 基于ArcGIS Server的方案
ArcGIS Server的核心特性在于其提供了强大Web服务和Web开发手段,如Web控件和Web服务。基于ArcGIS Server构建的基础地理信息平台的框架。

选择ArcGIS Server构建服务平台也是一个不错的选择,主要在于其强大的基础Web开发能力。但缺点也是明显的,除去ArcGIS Server昂贵的价格外,还有 ArcGIS Server没有提供现成的专题图服务、元数据服务和分析服务。当然这些服务可以通过基础的Web服务进行二次开发实现。所以这种方案适合二次开发能力较强的系统平台,对于有二次开发实力的企业或者政府机构可以选择这种方案来搭建服务平台。

4.3.3 基于ArcEngine构建的服务平台的方案
在ArcGIS体系中,ArcEngine是一个强大的GIS核心组件层。笔者在前面已经谈到,虽然ArcEngine定位在桌面应用程序开发,但实际上完全可以利用它实现更复杂的功能,比如实现服务平台。ArcEngine提供了内核操作、显示操作、分析操作、数据存取操作、空间对象操作、系统操作、输出操作等组件群,利用这些组件群,完全可以搭建一个全新的服务平台,当然需要使用Windows服务技术。基于ArcEngine构建的基础地理信息平台的框架。

分析等一系列服务。在这些服务的基础上,利用.net技术,进一步实现WebServices和WebControl,用于Web应用开发,同时通过COM+接口,也可以用于桌面开发应用。笔者所在公司结合已有技术,目前已经完全实现了基于ArcEngine的服务平台。

采用ArcEngine构建服务平台,需要有深厚的技术积累,开发难度较大。采用这种方式的优点在于可扩展较强,成本也相对低,可广泛应用于水利、规划、政府GIS平台等领域。

4.4应用平台
应用平台主要提供一些集成的应用模块,这些模块包括了完整的功能应用,可以单独使用,也可以集成形成综合的应用系统,用户可以在这些模块基础上进行快速开发,实现各种复杂的应用系统。应用平台包括地图显示模块、信息查询模块、空间分析模块、专题图制作模块以及数据共享模块,下面将分别作介绍。

4.4.1 地图浏览模块
地图浏览采用WebControl的MapControl和LayerControl来开发一个集成的地图浏览模块,实现地图显示、图层显示控制、测距、输入地图等常用功能。本模块既可以独立使用,也可以进一步扩展为更复杂的查询系统。

1)地图显示

地图显示包括缩放、漫游、刷新等功能。

2)图层显示与控制

控制各图层是否显示,移动图层的显示次序

3)距离测量

在地图上用鼠标输入方式实现距离的直接测量。

4)地图输出

将当前地图输出为图片,供保存和打印。

4.4.2 信息查询模块
信息查询包括空间查询、属性查询以及二者联合查询。本模块同样利用MapControl来实现,查询结果一方面在地图上加亮显示,另外一方面提供一个结果列表,点击列表可以查看更详细的属性信息。

1)空间查询

在地图窗口中通过点选取、矩形选取、圆选取、折线选取和多边形选取等功能实现基于几何形状的目标选择查询。还可以实现点缓冲区查询、线缓冲区查询和面缓冲区查询。

2)属性查询

提供一个查询窗口输入条件或直接输入SQL条件,从数据库中查出满足查询条件的所有地理实体,加亮显示到地图上,点击实体可以查看其关联的更详细信息。

3)组合查询

将空间信息与属性信息组合起来进行查询,即实现基于属性查询的空间查询和基于空间查询的属性查询。

4.4.3 空间分析模块
利用服务平台的空间分析服务,来实现空间分析模块。ArcGIS 中的Spatial扩展模块提供了一个强大的空间分析能力,允许进行复杂的分析,主要包括:

1)覆盖叠置分析

覆盖叠置分析是将两层或多层地图要素进行叠加产生一个新要素层的操作,其结果将原来要素分割生成新的要素,新要素综合了原来两层或多层要素所具有的属性。

2)网络分析

网络分析是GIS平台最实用的分析手段,在实际中有广泛的应用,如公交线路选择。网络分析主要包括:静态求最佳路径、N条最佳路径分析、最短路径、动态最佳路径分析等。

3)缓冲区分析

缓冲区分析是针对点、线、面实体,自动建立其周围一定宽度范围以内的缓冲区多边形。

4)三维显示

利用ArcEngine和 DEM数据来显示三维图形。

4.4.4 专题图制作模块
专题图一般是根据具体的应用而不同的,如水利系统需要等值线图、等值面、彩色渲染图和模数图。专题图制作模块通过调用专题图服务,来生成实际的专题图。以下是水利系统生成的专题图:地下水水位等值线图、地下水埋深等值线图、水质模数分布图、地下水水位升降变幅图、地下水降落情况分布图、人口经济专题图、多年平均降雨等值线、水文报汛站网图、抢险队伍分布图、防汛物资储备分布图等。

4.4.5 数据共享模块
作为一个基础地理信息系统平台,除了用来服务具体的应用系统,还有一个重要的功能就是实现数据共享,即用来发布和共享数据平台的成果,供经过授权的系统或者用户来访问获取,这样才体现了基础地理信息系统平台的真正价值。

1)元数据查找

实现数据共享,首先在于提供元数据服务功能。前面已经论述过,服务平台已经提供了基础的元数据后台服务,我们可以利用这个服务,实现元数据的查询,用来查询所有已经共享的空间数据,了解数据的详细信息,如数据共享人、数据的生产时间、数据精度等信息。

2)数据获取

通过元数据找到需要的空间和属性数据,可以通过两种方式获取:一是通过基础地理信息系统平台的MapControl直接显示;另一种方式是通过基础平台提供的WebServices获取矢量和属性数据,可以通过GeoDatabase空间数据模型来传递。

5 应用实例
应用实例之一:城市水务一体化管理系统

应用实例之二:政府基础地理信息系统平台

6 总结
上面比较简单的介绍了搭建基础地理信息系统平台的几个基本思路,实际上,真正实施一个基础地理信息系统还存在很多具体的技术细节,需要系统设计者进一步思索并加以改进。笔者认为,在实际的大型应用系统中,基础地理信息系统平台作为一个重要的基础平台,提供空间等相关服务,起到一个举足轻重的作用,一方面可以减轻上层应用系统的开发难度,同时也便于整体系统维护升级。采用ArcGIS 9来搭建基础平台,主要考虑ArcGIS拥有海量数据处理能力和高可靠性,适用于大型的系统建设,如城市政府GIS系统、国家级项目等拥有海量数据的系统。



2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧