成都理工大学工程技术学院2008级摘要:
随着互联网技术的兴起和应用“数字地球”概念的提出,城
市信息化建设的发展,数字城市的概念也相应出现。所谓数字城市是指各城市在开展宣传、科研和管理及对外通讯过程中以网络为基础,利用先进的信息化手段和工具,实现城市的数字化、信息化和智能化。基于WebGIS的数字城市,不仅可以处理大量的文字信息,而且可以科学管理和综合分析各种有空间内涵的地理数据,它通过网络综合利用各种数据,建立互操作平台,形成了一个涵盖城市规划、建设、管理等各个方面的综合性技术系统。关键词:WebGIS,数字城市,综合分析一、网络地理信息系统(WebGIS)技术简介
WebGIS是建立在Internet上具有浏览器/服务器体系结构(B/S)的网络GIS,它是一个交互式的、分布式的、动态的地理信息系统,也可简单定义为基于Internet平台的GIS,就是利用互联网技术和WWW技术,访问位于不同地区不同类型的空间信息资源,是完善和扩展传统的地理信息系统功能的一门新技术。
WebGIS基本原理如图1所示:首先用户通过Internet访问WebGIS页面,在WebGIS页面地图窗口进行相应的地图操作,客户端将相应的地图操作请求发送给Web服务器,Web服务器通过GIS服务代理将命令解析并与GIS服务器通讯,GIS服务器接到命令后进行处理,如果处理过程中需要访问数据库,则通过空间数据库引擎
地理信息系统
周龙
访问关系型数据库,或通过ADO访问属性数据库,查询到数据,将结果转换为HTML页面并把GIS数据通过Web服务器返回客户端。
与传统的地理信息系统相比较,万维网地理信息系统有如下特点:
1)、更广泛的客户访问范围。客户可以同时访问多个位于不同地方的服务器上的最新数据,而Internet/Intranet所特有的优势大大扩展了GIS的数据的处理能力,增强了空间数据的时效性。
客户端的平立性。无论客户机是何种操作系统,只要支持通用的Web浏览器,用户就可以访问GIS数据及服务器所提供的服务。2)、更简单的操作。要推广GIS,使GIS系统为广大的普通用户所接受,而不仅仅局限于少数受过专业培训的用户,就要降低对系统的操作难度。通过Web浏览器提供友好的用户界面无疑是一种很好的选择。
3)、更高效的计算负载平衡。传统的GIS大都使用文件服务器结构的处理方式,其处理能力完全依赖客户端,效率较低。而当今的一些高级的WebGIS能充分利用网络资源,将复杂的处理交由服务器处理,而简单的操作则由客户端直接完成。这种计算能灵活地在服务器端和客户端之间合理地分配处理任务,从而提高网络资源的利用效率,从而提高了系统的性能。
4)、分布式的系统。GIS数据和分析工具是的组件和模块,WebGIS利用Internet的这种分布式系统把GIS数据和分析工具部署在网络不同的计算机上,用户可以从网络的任何地方访问这些数据和
应用程序,即不需要在本地计算机上安装GIS数据和应用程序,只要把请求发送到服务器,服务器就会把数据和分析工具模块传送给用户,达到Just-In-Time的性能。Internet的一个特点就是它可以访问分布式数据库和执行分布式处理,即信息和应用可以部署在跨越整个Internet的不同计算机上。
5)、动态性。由于WebGIS是分布式系统,数据与应用程序部署在不同的计算机上,随时可能被管理员更新,对于Internet上的每一个用户来说,都能得到最新的数据和应用程序的最新版本,只要数据源发生变化,和数据源的动态连接将保持数据的现势性。
6)、交互性。WebGIS可使用户在Internet上操作GIS地图和数据,用Web浏览器(IE、Netscape等等)执行部分基本的GIS功能:如缩放、漫游、查询和标注,甚至可以执行空间查询:如“离你最近的旅馆或饭店在哪儿”,或者更先进的空间分析:比如缓冲分析和网络分析等。在Web上使用WebGIS就和在本地计算机上使用桌面GIS软件一样。
7)、经济性。一般专业的GIS软件非常昂贵,而对于普通用户来说,经常WebGIS是建立在Internet上具有浏览器/服务器体系结构(B/S)的网络GIS,只使用一些最基本的功能,想购买专业软件显得不太可能,也不经济。WebGIS在客户端只需要浏览器,不需要客户的额外投入。由于客户端的简单而减少的维护费用也不容忽视。为了适应这些特点,在实现WebGIS时,需要考虑下面这些情况:(1)支持Internet/Intranet技术标准,或与Internet/Intranet技
术标准相兼容,具有分布式应用体系结构,也就是实现WebGIS客户机端与服务器端数据传输通信。包括支持TCP/IP网络通信协议、HTFP文档与文件传输协议、文档显示与应用程序集成(HTML和
HTMLBrower)、服务器端集成(WebServerCGI或AH)、客户端扩展(HTML,Java和Javaseript)、服务器端扩展(CGI和Server&PI)可执行的客户机与服务器、进程的逻辑分布、多线程可扩展服务器、支持动态访问、强大的客户部件、远程制作(包括可视化远程制作工具)、图形文档支持嵌八的URL等功能。
(2)分布式应用体系结构。这种结构使得客户机与服务器之间的处理负荷能达到真正有效的平衡.实现计算分布和数据分l布的目标,使系统具有可互操作性。从而可以把数据量集中的处理任务放在服务器端执行,客户端完成诸如空间查询、专题地图生成等进程.以充分发挥客户机与服务器各自的优势。
(3)系统的开放性。系统的开放性要求具有软硬件资源共享、数据多重应用、跨平台运行,且系统易于集成等方面的特性,相对于Internet/Intranet而言,WebGIS系统是一个建立于Internet/Intranet之上的开放式、具有统一标准和广泛适应性的互联网应用系统。WebGIS系统一旦建成,客户端用户币仅能使用服务器端的软硬件资源,而且可以方便地利用Internet主干网的数据信息资源等。
国外ESRI、MapInfo、INTERGRAPH、AutoDesk等公司已经提供了他们各自的WebGIS解决方案;如国内的武汉测绘科技大学实现的InternetGeoSurf.北京大学李琦教授、方裕教授、许卓群教授和中科院遥感
应用研究所杨崇俊研究员各自领导的
课题组在WebGIS的理论和应用中作了很多卓有成效的工作,许多其他的GIS公司也在WebClS方向作了很多工作。二、ASP.Net技术的开发支持
本系统的开发模式为B/S,所以我们选择了ASP.NET环境下开发系统。
ASP是一套微软开发的服务器端脚本环境,ASP内含于IIS3.0和4.0之中,通过ASP可以结合HTNL网页、ASP指令和AetiveX控件建立动态、交互且高效的Web服务器应用程序:
ASP文件存储在服务器端,当客户端向文件名后缀为ASP的文件发送一个请求后,Webserver在服务器端解释这个ASP文件后形成一个HTML页,而后传送到客户端:
ASP解决了CGI接口对象化的难题.可以自动解析收集来的网页的数据。另外,作为一种微软的Web集成技术,ASP可以使用Windows环境下的其他ActiveX对象。但是,由于ASP+务器端组件的方法仅仅是一种服务器端的技术,采用这种方法作为一种WebGIS的解决方案,WebGIS客户端同样不具备数据管理模块,因此,与CCI、ServerAPI技术类似,具有WebGIS网络传输负担重的缺点。另外,作为微软公司推出的一种动态网络技术支持,WebGIS服务器端程序不具备良好的平台无关性,无法方便地进行跨平台的系统移植。ASP.NET技术是由微软的.NET部分技术具体化而来的,ASP.NET完全基于模块与组件,具有更好的可扩展性与可研定制性,数据处理方面更是引入了许多激动
人心的新技术。正是这些具有革新意义的新特性,让ASP.NET给Web开发人员提供了更好的灵活性,有效的缩短了Web应用程序的开发周期[7]。
ASP.NET增强了许多内置性能。例如,页只需编译一次,并为后面的请求而被缓存。由于这些已编译的页保存到磁盘,因此即使整个服务器重新启动,它们也不会失效。ASP.NET还缓存内部对象(如服务器变量),以加速用户代码的访问速度。而且,使ASP.NET获益的还有对公共语言运行库的所有性能改进:实时编译、同时为单处理器和多处理器计算机准备的微调公共语言运行库,等等。
ASP.NET改进了配置、伸缩性、安全性和可靠性。对于简单的ASP应用程序,配置其实并不算什么问题,但是当你移植到一个利用组件的N层结构中时就会遇到问题。当你对这些应用程序进行配置和维护时,DLL陷阱问题(组件注册、版本、锁定的DLL等等)就会出现。ASP.NET中则取消了组件注册以及DLL锁定,全面使用了XML配置文件,从而解决了这个问题。这样你只需要执行复制文件的工作就能配置一个Web应用程序。但是,所有这些改进都无法使您避免编写那些性能不佳的代码。最终,您必须保证应用程序可以满足用户的要求。
ASP.NET对各种不同的浏览器提供了更好的支持。对于ASP开发人员来说,浏览器兼容问题好象是一个永恒的问题。你或者为低一级的浏览器编写代码,例如用HTML3.2,或者页面的浏览范围。无线应用程序协议WAP设备的引入还会深化这个问题。本文中Web表单这部分描述了ASP.NET是如何解决浏览器兼容性问题的。ASP.NET
造就了一类新的Web应用程序。目前的Web应用程序通常都是同一种模式:一套线性应用程序,然后将逻辑植入其中之一。ASP.NET允许开发人员打破这种单一模式,创造出更加动态而且伸缩性更强的应用程序,这种应用程序能够更好地满足公司的商业需求,并提供一个更加丰富的开发环境。三、NET与WebGIS
目前,大部分的WebGIS采用的是CGI/SeverAPI方法。CGI机制本身有很大的缺陷,对于每一个客户机的请求,都要重新启动一个新的服务进程,当有多用户同时发出请求时,服务器的负担重,经过各种扩充的CG1工具也无助于问题的解决,客户机对象仍无法直接调用服务器对象,客户机与服务器对象之间交互的基本形式仍然是HTML表格。相对而言,SeverAPI性能有所改进,但ServerAPI往往依附于特定的Web服务器,可移植性较差。为了解决这些问题,我们选择了在桌面市场里占有率较高的Windows.NET平台作为构建WebGIS的基础。更为重要的是,.NET开发既快又方便,和Windows上的各种服务紧密相连,通过和操作系统紧密相联的开发环境更有利于提高系统的性能和质量,客户机可以直接调用服务器对象,突破了CGl/SeverAP1方式的瓶颈。2体系结构设计
在.NET技术的支持下,我们构建了用户表示层、Web服务层、应用服务层、数据层、技术支持层5个层次组成的新型WebGIS模型(图1)。层间结构清晰、耦合度低,它们互相联系形成一个有机的整体,能够提
高整个系统的性能,降低成本,易于维护和配置。
用户表示层基于ASP.NET的用户界面Web服务层提供网络服务IIS应用服务层COM+组建,提供地图服务技术支持层WebGIS技术Web数据库技术缓冲技术COM+技术对象池技术数据层分布式数据库系统其他技术图1框架模型
用户层:直接为使用者提供可视界面,使用ASP.NET向瘦客户端系统提交HTML页面的逻辑。
Web服务层:提供普通的Internet信息服务。
应用服务层:将地图服务打包为COM+组件,向用户层提供高质量的地图服务,包括地图显示、GIS查询和信息挖掘等功能。
数据层:系统的核心,从表现形式上是存在于在系统的网络中心和客户端的分布式数据库。
技术支持层贯穿以上4个层,通过结合使用各种技术,确保系统的目标得以实现。一方面本系统运用现有的成熟技术,如.NET技术、网络技术、数据库技术、Web技术等,使得实现系统的基本目标有可靠的保证;另一方面,要解决一
系列关键技术问题,并通过同前面4个层次上相结合,使得系统的实现在技术上成为可能。系统总体结构的建立
2.1开发环境
运行环境:Windows2000/Xp
开发语言与环境:Asp.NET、JavaScript/VisualStudio20082.2软件环境
在WebGIS系统设计中,需要合适的操作系统、数据库管理系统、前端开发工具,以及WebGIS开发平台。综合考虑产品性能等因素,系统选用ESRI公司的ArcIMS9.3平台产品。系统服务器采用WindowsXPServer;浏览器端使用IE浏览器;Web服务器采用MicrosoftIIS。
2.3系统体系结构
系统采用三层体系结构,包括表示层、逻辑层和数据层,图2是系统的体系结构。表示层是指ArcIMSViewers,用于系统将用户所需的信息或请求处理结果图片、文字返回给用户。逻辑层是由Web服务器、ArcIMS应用服务器组成,主要是响应用户的各种请求和查询操作。数据层主要负责空间数据、属性数据及其元数据(Metadata)的存储管理。三层体系结构的建立将数据和数据的应用分割开来,提高了系统运行的稳定性,也大大提高了系统运行的可扩展性。
三、系统数据库的建立
3.1空间数据库的建立
需要收集的图形数据有乐山市1:500地形图,用来表示乐山市的整个地形情况及其地理位置,主要包括各种街道、植被及建筑物。乐
山市建筑物分布平面图,包括办公楼、学校、医院、图书馆、银行、部门、餐馆、旅店、居民楼、工厂等。
系统使用ArcGIS软件自身的数字化功能,将现有的乐山市栅格图进行矢量化。在ArcGIS中采用图层来组织和管理空间数据,将一幅地图加工成多个层层叠加的透明层,每个图层包含了整个地图的一个不同的方面。图层划分的基本原理是要与属性数据库中的表一一对应,将图形数据分为以下10个图层:①学校图层;②行政设施图层;③医院图层;④餐馆图层;⑤居民楼图层;⑥公共设施图层;⑦银行图层;⑧道路图层;⑨绿地图层;⑩工厂及其它设施图层。经过这样的图层划分,用户可以根据关心的重点不同决定哪些图层予以显示并进行专门的操作,更加方便了实际的管理。
3.2属性数据库的建立
属性数据结构是根据用户的需求对地理信息系统的分析共同决定的,根据各职能部门对城市数字化管理要求设计数据字典。需要采集的属性数据主要有建筑物资料库包括楼房编号、楼房性质、楼层数、占地面积、建筑面积。医院信息库包括编号、名称、地点、等级、联系电话。银行信息库包括编号、名称、所属单位、地址和电话。学校信息库包括编号、名称、所属单位、地址和电话。
办公楼信息库包括编号、名称、所属单位、地址和电话。餐馆信息库包括编号、名称、地址和电话。旅店信息库包括编号、名称、星级、地址和电话。居民楼信息库包括编号、名称、所属单位、地址和电话。
工厂信息库包括编号、名称、所属单位、地址和电话。四、数据的发布准备1.GISServer的安装:
依次选择“开始”→“程序”→“ARCGIS”→“ArcGISserverfortheMicrosoft.NetFramework”→“GISServerPostInstall”,进入下一级菜单。
点击下一步,进行相关参数的设置,输入ArcSOC和ArcSOM账号和密码信息。
点击下一步,为ArcGISWebService设置相应的参数信息。
继续按照提示信息进行下一步安装。
输入软件的授权信息,进行注册。
完成GISServer服务器的安装。
2、电脑IIS配置
右键单击“我的电脑”,选择“管理”,找到“本地用户和组”中的组的Administrators,右键单击,选择“添加到组”,进去之后点“添ArcGISSOM,加”,然后点“高级”,“立即查找”,分别添加ArcGISSOC,ArcGISWebServers,然后点应用再确定。
接着点击点“服务和应用程序”下的Internet服务信息下的网站下,的ArcGIS,分别设置“services”的“services.config”“rest”的“rest.config”把里面的电脑名称改成自己电脑的名称,然后重启IIS
3、地图文档的发布
ArcGISServer的管理有几种方式,这里选择用Manager对其进行管理。选择“ArcGIS”→“ArcGISserverfortheMicrosoft.NetFramework
”
→
“
ArcGIS
Server
Manager
”。
输入用户名及其相应的密码信息,点击登录按钮,进入ArcGISServer管理界面。切换菜单到Services选项卡中,点击“PublishaGISServerResource”链接,进入发布GIS资源向导的第一个页面,如下图。在该页面中首先需要在Resource中输入资源的文件名(包含绝对路径)。为该地图服务输入一个名称,这里采用默认的名称。
输入资源与名称参数后,选择Next按钮进入下一个页面,在该页面
中,需要设置服务可提供的功能。如果发布的是一个地图文档资源,MobileDataAccess那么地图功能为默认选项,此外还可以选择WMS、和KML。如果地图文档资源中的数据来自数据库,那么还可以选择GeoDataAccess。这里我们选择默认值。点击Next,进入下一个页面,根据提示信息,完成相关信息的设置。单击Finish按钮完成发布服务,并
返
回
到
Services
页
面
。
单击该项服务左边的加号按钮,如果能够正常显示图形,表明地图文档发布成功。
3、创建WebApplications
切换到Application选项卡中,点击“WebApplications”,进入界面如图。
点击上面的“CreateWebApplicatons”选项,进入下一页面,这里设置WebApplications的名称以及相应的描述信息。设置完成后点击
Next
进
入
下
一
个
页
面
。
点击上面的AddLayers选项,进入下一级子窗口,这里添加本地GISServer,在Type类型,选择ArcGISServerLocal,在Host一栏中输
入服务器地址(这里可输入主机的地址、名称或者直接输入Localhost)。
选择该服务器上共享发布的地图文档资源。
接着可以为当前的图层,进行必要的参数设置,比如对该图层的描述信息等,完成后直接根据提示完成后续的操作。五、系统功能框架设计分析1、ArcGISServer架构图
2、系统设计框架图如下:
基于WebGIS的乐山市地图系统设计地图文档的基本操作自定义要素查询图形另存输出地图的放大地图的缩小全屏地图显示地图的移动鹰眼功能点查询添加查询结果图层字段显示图层查询显示右键另存输出六、系统功能介绍
6.1基本功能:包括地图的放大、缩小、漫游以及全图显示(如下图)。
6.2查询功能:查询分为图查属性和属性查图。图查属性就是指在地图上单击,显示出相应的属性信息,同时可以将属性信息添加到结果图框中,以方便查看和进一步研究;属性查图则是通过图层和要素信息等属性信息来查询地图,并在地图中呈高亮显示。(如下图)
(图查属性)
(属性查图)
6.3空间分析功能:分析功能主要就是缓冲区分析;所谓缓冲区分析就是地理空间目标的一种影响范围或服务范围,它是GIS中最重要的空间分析之一。本实例将通过点、线、多边形的缓冲区分析,介Web端以及GIS服务器之间的转换。绍图形对象在客户端、(如下图)
6.4鹰眼功能:点击鹰眼按钮,可以实现显示和隐藏鹰眼。(如下图)
6.5测量功能:功能包括点坐标显示、长度测量、面积测量。(如下图)
6.6放大镜功能:是一个小窗体,能对地图进行局部放大观测。(如下图)
6.7右键功能:点击右键,弹出提示,对地图进行保存。(如图)功能核心代码(缓冲区分析)
publicclassBufferHelper{
publicstaticPolygonN[]Query(ESRI.ArcGIS.Server.IServerContextserverContext,
ESRI.ArcGIS.Geometry.IPolygonpolygon){
IMapServermapServer=serverContext.ServerObjectas
IMapServer;
IMapServerInfomapInfo=
mapServer.GetServerInfo(mapServer.DefaultMapName);
IMapDescriptionmapDesc=mapInfo.DefaultMapDescription;IImageDisplayimgDisp=newESRI.ArcGIS.Carto.ImageDisplay();imgDisp.Height=500;imgDisp.Width=500;
imgDisp.DeviceResolution=96;
ESRI.ArcGIS.esriSystem.ILongArraylayerIds=new
ESRI.ArcGIS.esriSystem.LongArray();
layerIds.Add(2);IMapServerIdentifyResultsresults=mapServer.Identify(mapDesc,
imgDisp,polygon,
0,
ESRI.ArcGIS.Carto.esriIdentifyOption.esriIdentifyAllLayers,layerIds);
PolygonN[]resultPolygons=newPolygonN[results.Count];for(inti=0;i ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.ComObjectToValueObject (geo,serverContext,typeof(PolygonN))asPolygonN; } returnresultPolygons;} 【参考文献】 (1)、刘光、唐大仕《WebGIS开发—ArcGISServer与.NET》清华大学出版社 (2)、何正国、杜鹃《ArcGISServer开发从入门到精通》民邮电出版社 (3)、李春葆、谭成予、金晶、曾平等《C#程序设计教程》 人 (4)、李彦、唐鑫、唐继强、崔英志等《ASP.NET3.5系统开发精髓》
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务