webGIS课程设计Word文档格式.docx
《webGIS课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《webGIS课程设计Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
这种计算能灵活地在服务器端和客户端之间合理地分配处理任务,从而提高网络资源的利用效率,从而提高了系统的性能。
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)。
层间结构清晰、耦合度低,它们互相联系形成一个有机的整体,能够提高整个系统的性能,降低成本,易于维护和配置。
图1框架模型
用户层:
直接为使用者提供可视界面,使用ASP.NET向瘦客户端系统提交HTML页面的逻辑。
Web服务层:
提供普通的Internet信息服务。
应用服务层:
将地图服务打包为COM+组件,向用户层提供高质量的地图服务,包括地图显示、GIS查询和信息挖掘等功能。
数据层:
系统的核心,从表现形式上是存在于在系统的网络中心和客户端的分布式数据库。
技术支持层贯穿以上4个层,通过结合使用各种技术,确保系统的目标得以实现。
一方面本系统运用现有的成熟技术,如.NET技术、网络技术、数据库技术、Web技术等,使得实现系统的基本目标有可靠的保证;
另一方面,要解决一
系列关键技术问题,并通过同前面4个层次上相结合,使得系统的实现在技术上成为可能。
系统总体结构的建立
2.1开发环境
运行环境:
Windows2000/Xp
开发语言与环境:
Asp.NET、JavaScript/VisualStudio2008
2.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,右键单击,选择“添加到组”,进去之后点“添加”,然后点“高级”,“立即查找”,分别添加ArcGISSOC,ArcGISSOM,ArcGISWebServers,然后点应用再确定。
接着点击点“服务和应用程序”下的Internet服务信息下的网站下的ArcGIS,分别设置“services”的“services.config”“rest”的“rest.config”,把里面的电脑名称改成自己电脑的名称,然后重启IIS
3、地图文档的发布
ArcGISServer的管理有几种方式,这里选择用Manager对其进行管理。
选择“ArcGIS”→“ArcGISserverfortheMicrosoft.NetFramework”→“ArcGISServerManager”。
输入用户名及其相应的密码信息,点击登录按钮,进入ArcGISServer管理界面。
切换菜单到Services选项卡中,点击“PublishaGISServerResource”链接,进入发布GIS资源向导的第一个页面,如下图。
在该页面中首先需要在Resource中输入资源的文件名(包含绝对路径)。
为该地图服务输入一个名称,这里采用默认的名称。
输入资源与名称参数后,选择Next按钮进入下一个页面,在该页面中,需要设置服务可提供的功能。
如果发布的是一个地图文档资源,那么地图功能为默认选项,此外还可以选择WMS、MobileDataAccess和KML。
如果地图文档资源中的数据来自数据库,那么还可以选择GeoDataAccess。
这里我们选择默认值。
点击Next,进入下一个页面,根据提示信息,完成相关信息的设置。
单击Finish按钮完成发布服务,并返回到Services页面。
单击该项服务左边的加号按钮,如果能够正常显示图形,表明地图文档发布成功。
3、创建WebApplications
切换到Application选项卡中,点击“WebApplications”,进入界面如图。
点击上面的“CreateWebApplicatons”选项,进入下一页面,这里设置WebApplications的名称以及相应的描述信息。
设置完成后点击Next进入下一个页面。
点击上面的AddLayers选项,进入下一级子窗口,这里添加本地GISServer,在Type类型,选择ArcGISServerLocal,在Host一栏中输入服务器地址(这里可输入主机的地址、名称或者直接输入Localhost)。
选择该服务器上共享发布的地图文档资源。
接着可以为当前的图层,进行必要的参数设置,比如对该图层的描述信息等,完成后直接根据提示完成后续的操作。
五、系统功能框架设计分析
1、ArcGISServer架构图
2、系统设计框架图如下:
六、系统功能介绍
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.ServerObjectasIMapServer;
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=newESRI.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<
results.Count;
i++)
IMapServerIdentifyResultresult=results.get_Element(i);
ESRI.ArcGIS.Geometry.IGeometrygeo=result.Shape;
resultPolygons[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系统开发精髓》