《WebGIS开发与应用一.ppt》由会员分享,可在线阅读,更多相关《WebGIS开发与应用一.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、WebGIS开发与应用教学目标通过本章的学习,了解当前通过本章的学习,了解当前WebGIS的发展新的发展新技术及趋势,掌握现在主流技术及趋势,掌握现在主流WebGIS的开发方法。的开发方法。学习完本章内容后,能够实现使用学习完本章内容后,能够实现使用ArcGIS Server 建立和开发简单的建立和开发简单的WebGIS应用。应用。目录WebGIS开发技术简介一一主流WebGIS开发框架二二ArcGIS Server for ADF开发三三ArcGIS Web API开发四四公共API开发五五一、WebGIS开发技术简介一、WebGIS开发技术简介分分布布式式服服务务体体系系结结构构是是在在客
2、客户户端端和和服服务务器器端端都都能能提提供供活活跃跃的的、可可执执行行进进程程的的体体系系结结构构;它它能能有有效效地地平平衡衡两两者者之之间间的的处理负载。处理负载。当前WebGIS主流架构一、WebGIS开发技术简介客户端:是由通用的Web浏览器,必要时加上插件(Plug-in)共同构成的,它是用户使用WebGIS的界面,用户通过它提出请求,获得结果;服务器端:包括WWW、MAIL、FTP服务器和GIS服务器,通过HTTP协议和TCP/IP协议为用户提供信息交换的通道和地理信息处理功能;空间数据库:为客户的数据请求和WebGIS的各种处理功能提供空间数据。分布式WebGIS的结构一、We
3、bGIS开发技术简介CGI(Common Gateway Interface)法)法Java Applet法法插件(插件(Plug-ins)法)法ActiveX法法服务器应用程序接口(服务器应用程序接口(Server API)法)法实现技术一、WebGIS开发技术简介优点:优点:运行效率比CGI更高安全可靠传输缺点:缺点:ISAPIDLL和服务器密切相关,程序的可移植性差;受限于ISAPIDLL系统的维护和管理复杂服务器应用程序接口(Server API)一、WebGIS开发技术简介实现技术比较技术类型优点缺陷CGI客户端小;处理大型GIS操作分析的功能强;充分利用服务器现有资源。网络传输和服
4、务器的负担重;同步多请求问题;作为静态图像,JPEG和GIF是客户端操作的唯一形式。Java Applet与平台和操作系统无关;实时下载运行,无需预先安装;GIS操作速度快;服务器和网络传输的负担轻。GIS数据的保存、分析结果的存储和网络资源的使用能力有限;处理较大的GIS分析任务的能力有限。Plug-in服务器和网络传输的负担轻;可直接操作GIS数据,速度快。需要先下载安装到客户机上;与平台和操作系统相关;对于不同的GIS数据类型,需要有相应的GIS Plug-in来支持ActiveX执行速度快;具有动态可重用代码模块。与操作系统相关;需要下载、安装,占用存储空间;安全性较差;对于不同的GI
5、S数据类型,需要有相应的GIS ActiveX控件来支持。Server API不像CGI那样每次都要重新启动,其速度较CGI快得多。需要依附于特定的Web服务器和计算机平台。极少使用较少使用较少使用3D仍使用较多主流技术二、主流WebGIS开发框架服务器控件(服务器控件(WebControls)开发)开发Ajax控件(控件(AjaxControls)开发)开发Server API开发方式二、主流WebGIS开发框架服务器控件(服务器控件(WebControls)开发)开发基于WebControls的传统模式其体系结构包括客户端浏览器和Web服务器两部分,用户对网页触发某动作(如地图视图操作、图
6、查属性及属性查图等),通过Http协议向Web服务器提交请求,服务器进行一些处理一获得数据、运行、与不同的服务系统会话,重新生成一个新的页,然后将新页面通过网络传给客户端。Server API开发方式二、主流WebGIS开发框架服务器控件(服务器控件(WebControls)开发)开发二次开发平台ArcGIS IMSArcGIS Server 9.2(及以前版本)MapInfo Xtreme 2008(及以前版本)SuperMap IS.Net 2008(及以前版本)MAPGIS7-IMS(及以前版本)Server API开发方式二、主流WebGIS开发框架Ajax控件(控件(AjaxCont
7、rols)开发)开发基于AjaxControls无刷新模式在客户端和服务器端增加了一个中间层Ajax引擎,使用户操作与服务器响应异步化,并不是所有的用户请求都提交给服务器。Ajax相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化并不是所有的用户请求都提交给服务器,只有一些需要的数据和数据处理才交给Ajax引擎处理。只有确定需要从服务器读取新数据时,才由Ajax引擎代为向服务器提交请求。这样就把一些服务器负担的工作转移到客户端,利用客户端闲置的处理能力来处理,减轻了服务器和网络的负担。Server API开发方式二、主流WebGIS开发框架Ajax控件(控件(AjaxCont
8、rols)开发)开发二次开发平台ArcGIS Server 9.3(及以后版本)SuperMap IS.Net 6(及以后版本)MAPGIS7-IMS SOA版(及以后版本)公共平台Google Map APIMapABC API51ditu APIServer API开发方式二、主流WebGIS开发框架Ajax控件(控件(AjaxControls)开发)开发开源平台GeoServerMapServerShapeMapServer API开发方式三、ArcGIS Server for ADF开发ArcGIS Server ArcGIS Server 概述概述概述概述开发基础开发基础开发基础开发
9、基础ASP.NETASP.NETArcGIS ArcGIS 控件介绍控件介绍控件介绍控件介绍 ArcGIS ServerArcGIS Server开发初步开发初步开发初步开发初步4 41 12 23 3三、ArcGIS Server for ADF开发3.1.ArcGIS Server 概述ArcGIS ServerArcGIS Server简介简介简介简介 ArcGIS Server ArcGIS Server 架构架构架构架构 ArcGIS ServerArcGIS Server功能功能功能功能 ArcGIS ServerArcGIS Server安装与配置安装与配置安装与配置安装与配置4
10、 41 12 23 3ArcGIS ServerArcGIS Server地图服务发布地图服务发布地图服务发布地图服务发布5 53.1.1 ArcGIS Server 简介ArcGIS Server将两项功能强大的技术将两项功能强大的技术地理信地理信息系统息系统(GIS)和网络技术和网络技术(Web)结合在一起:结合在一起:GIS擅长于空间相关的查询、定位、分析和处理,网擅长于空间相关的查询、定位、分析和处理,网络技术则提供全球互联,促进信息共享。这两项络技术则提供全球互联,促进信息共享。这两项技术协同合作,构成了技术协同合作,构成了ArcGIS Server的主旋律。的主旋律。ArcGIS
11、Server是一个用于构建集中管理、支持是一个用于构建集中管理、支持多用户的企业级多用户的企业级GIS应用的平台软件。应用的平台软件。GISServer是一套GIS服务器组件,专门用来管理和发布地图服务,安装在GIS服务器上。ArcGIS Server 优点集中式管理带来成本的降低。集中式管理带来成本的降低。瘦客户端也可以享受企业级的瘦客户端也可以享受企业级的GIS服务服务 安全的连接和访问机制。安全的连接和访问机制。ArcGIS Server具备了在线数据编辑功能。具备了在线数据编辑功能。支持大量的并发用户访问,具有负载均衡能力。支持大量的并发用户访问,具有负载均衡能力。支持多种客户端。支持
12、多种客户端。3.1.2.ArcGIS Server架构3.1.3 ArcGIS Server的功能 3.1.4.ArcGIS Server的安装环境硬件硬件CPUPentiumorhigher内存最少512M硬盘NTFS360MBFAT597MB操作系统操作系统XP,ServicePack1Windows2000ServerorWindowServer2003浏览器浏览器IE6.0orhigher.NET Framework 2.0 or higher(1)安装)安装IIS(2)安装)安装Visual Studio,至少要安装,至少要安装.Net Framework9.2对应VS20059.3
13、对应VS2008(2010支持)10.0对应VS2010(3)安装)安装ArcGIS Desktop对应版本对应版本(4)准备好)准备好ArcGIS Server For.NET 的安装文件的安装文件(5)准备好)准备好ArcGIS Server的授权文件的授权文件ArcGIS Server安装准备ArcGIS Server安装与配置ArcGIS Server安装步骤用户权限设置SOMSOM即服务对象管理器,主要负责客户端请求调度,服务对即服务对象管理器,主要负责客户端请求调度,服务对象管理以及内置负载均衡机制以便在合适的象管理以及内置负载均衡机制以便在合适的SOCSOC机器中调度机器中调度S
14、erverObjectServerObject处理客户端请求。处理客户端请求。SOCSOC即服务对象容器,主要即服务对象容器,主要负责承载各个池化、非池化服务器对象负责承载各个池化、非池化服务器对象。池化的服务器对象池化的服务器对象提前被构造和初如化,实例能被多个会话提前被构造和初如化,实例能被多个会话共享,用来支持更多用户的请求。共享,用来支持更多用户的请求。非池化服务器对象非池化服务器对象每次重每次重新构造和初始化,并在返回服务器时析构。非池化的新构造和初始化,并在返回服务器时析构。非池化的GISGIS服服务的实例为单独的用户所占有,当用户操作完成后,该实例务的实例为单独的用户所占有,当用
15、户操作完成后,该实例被销毁。被销毁。设置设置ArcGISSOMArcGISSOM、ArcGISSOCArcGISSOC、ArcGISWebServiceArcGISWebService操作系统权限操作系统权限pooled/nonpooled GIS Services的概念池化:池化:池化:池化:在客户端请求间共享对象,支持无状态的交互,支持在客户端请求间共享对象,支持无状态的交互,支持很多用户,对象在启动时初始化,使用完毕并不销毁,而可很多用户,对象在启动时初始化,使用完毕并不销毁,而可以被下一个使用。这样提高了使用效率,使性能提升以被下一个使用。这样提高了使用效率,使性能提升。非池化:非池化
16、:非池化:非池化:使用的对象不能被共享,为每一个客户端创建新对使用的对象不能被共享,为每一个客户端创建新对象,支持有状态的交互,支持较少的用户。由于每个用户仅象,支持有状态的交互,支持较少的用户。由于每个用户仅对自身的对自身的EditsEdits集起作用,他人编辑时不能被见,所以集起作用,他人编辑时不能被见,所以EditsEdits时时需要非池化需要非池化。进入进入“计算机管理计算机管理”,刚刚设置的,刚刚设置的两个本地组帐户两个本地组帐户已经已经创建创建Agsadmin:包含所有的管理server的帐户Agsusers:包含所有将访问serverobjects的帐户将管理员与使用者分别加至这
17、将管理员与使用者分别加至这2个组中个组中,如图所示,如图所示ArcGIS Server用户配置制作地图文档制作地图文档制作地图文档制作地图文档 用户权限设置用户权限设置用户权限设置用户权限设置 在在在在ArcCatalogArcCatalog中发布地图服务中发布地图服务中发布地图服务中发布地图服务Server ManagerServer Manager中发布地图服务中发布地图服务中发布地图服务中发布地图服务 4 41 12 23 3Server ManagerServer Manager中发布中发布中发布中发布OGCOGCOGCOGC地图服务地图服务地图服务地图服务 5 53.1.5.ArcG
18、IS Server地图服务发布ArcGIS Server支持的服务MapServiceMapService是使用最多的一种是使用最多的一种ArcGISServerArcGISServer服务。该服务服务。该服务可以支持发布二维地图,支持建模,支持在线编辑空间数据可以支持发布二维地图,支持建模,支持在线编辑空间数据等。本章主要介绍等。本章主要介绍MapServiceMapService。Geocode Service指的是地址编码服务,该服务指的是地址编码服务,该服务可以把一个文本描述的地址转化为一个地理坐标。可以把一个文本描述的地址转化为一个地理坐标。Geodata Service提供了访问提
19、供了访问Geodatabase数据数据库内容的功能,支持在线的数据查询、数据提取、库内容的功能,支持在线的数据查询、数据提取、数据更新等。该服务在管理分布式的数据更新等。该服务在管理分布式的Geodatabase时非常方便。时非常方便。Geoprocessing Service是一个基于是一个基于web的地理的地理处理工具,客户端提交处理请求,服务器执行空处理工具,客户端提交处理请求,服务器执行空间分析和建模,然后把执行结果展现在客户端。间分析和建模,然后把执行结果展现在客户端。Globe Service是是ArcGIS for Server提供的提供的3D服务。首服务。首先在先在ArcGlo
20、be中创建中创建3D文档,然后通过文档,然后通过ArcGIS for Server发布即可。用户可以使用免费的发布即可。用户可以使用免费的ArcGIS Explorer来访问来访问ArcGIS for Server发布的发布的3D服务。服务。Image Service影像服务提供对栅格(及影像)数据的访影像服务提供对栅格(及影像)数据的访问。问。Search Service搜索服务可在本地网络上提供搜索服务可在本地网络上提供GIS 内容内容的可搜索索引。的可搜索索引。Workflow Manager Service可以使用可以使用ArcGIS在在web上提上提供工作流管理能力。可以使用桌面工具
21、定义工作流管理系供工作流管理能力。可以使用桌面工具定义工作流管理系统,然后使用统,然后使用ArcGIS for Server 将其发布为服务。将其发布为服务。制作地图文档 获取空间数据获取空间数据使用使用ArcMap制作地图文档制作地图文档在ArcCatalog中发布Map Service 在Server Manager中发布Map Serverice 在在ManagerManager里,可以选择里,可以选择PublishaGISResourcePublishaGISResource和和AddNewServiceAddNewService两种方法创建服务。选择两种方法创建服务。选择AddNew
22、AddNewServiceService允许在创建服务的同一时间里设置服务属性。允许在创建服务的同一时间里设置服务属性。相反地,相反地,PublishaGISResourcePublishaGISResource只提供所要求的最少只提供所要求的最少的信息。的信息。在Server Manager中发布Map Serverice 在Server Manager中发布Map Serverice所有数据必须来自单独的所有数据必须来自单独的所有数据必须来自单独的所有数据必须来自单独的ArcSDEArcSDE空间数据库空间数据库空间数据库空间数据库。在Server Manager中发布Map Server
23、ice 上机:按照演示安装配置软件,发布地图服务,并实现按照演示安装配置软件,发布地图服务,并实现简单的地图功能。简单的地图功能。三、ArcGIS Server for ADF开发ArcGIS Server ArcGIS Server 概述概述概述概述开发基础开发基础开发基础开发基础ASP.NETASP.NETArcGIS ArcGIS 控件介绍控件介绍控件介绍控件介绍 ArcGIS ServerArcGIS Server开发初步开发初步开发初步开发初步4 41 12 23 33.2 开发基础ASP.NET开发基础ASP.NET ASP.NETASP.NET简介简介简介简介 JavaScrip
24、t&AjaxJavaScript&AjaxASP.NET AJAXASP.NET AJAX Web ADFWeb ADF中的中的中的中的AJAXAJAX4 41 12 23 3ASP.NET特点 ASP.NET需要与需要与.NET Framework集成应用集成应用ASP.NET是编译执行而不是解释执行是编译执行而不是解释执行ASP.NET特点ASP.NET支持多种开发语言支持多种开发语言ASP.NET应用程序运行在公共运行语言运行库应用程序运行在公共运行语言运行库(CLR)内内 ASP.NET是面向对象的是面向对象的ASP.NET与设备和浏览器无关与设备和浏览器无关ASP.NET发布和配置容
25、易发布和配置容易ASP.NET 2.0 新的服务器控件新的服务器控件母板页母板页主题和外观主题和外观 登录管制登录管制 数据源控件数据源控件 Web部件部件 ASP.NET 3.5 LINQ LINQ(Languages Integrated Query,语言集成,语言集成查询查询)是一组基于是一组基于C#和和VB.NET语言的扩展。它允语言的扩展。它允许编写许编写C#或或VB.NET代码以查询数据相同的方式代码以查询数据相同的方式操作内存数据。操作内存数据。LINQ定义了大约定义了大约40个操作符,个操作符,如如select、from、in、where等,使用这些操作等,使用这些操作符可以编
26、写查询语句。符可以编写查询语句。ASP.NET AJAX AJAX是一项客户端快捷编程技术,它使得页面是一项客户端快捷编程技术,它使得页面不必触发一次完整的回调就可以调用服务器方法不必触发一次完整的回调就可以调用服务器方法并更新自身的内容。并更新自身的内容。green bits和和red bits ASP.NET AJAX Ajax技术概述技术概述 什么是什么是Ajax?AJAX=Asynchronous JavaScript and XML(异步的(异步的 JavaScript 和和 XML)。)。AJAX 不是新的编程语言,而是一种使用现有标准的新方不是新的编程语言,而是一种使用现有标准的
27、新方法,是一种用于创建快速动态网页的技术。法,是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,通过在后台与服务器进行少量数据交换,AJAX 可以使网可以使网页实现异步更新。这意味着可以在不重新加载整个网页的页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。情况下,对网页的某部分进行更新。(传统的网页(不使用(传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。)如果需要更新内容,必需重载整个网页面。)ASP.NET AJAX Ajax技术概述技术概述 根据根据Ajax提出者提出者Jesse James Garrett建议建议
28、AJAX:1使用使用XHTML+CSS来表示信息。来表示信息。2使用使用JavaScript操作操作DOM(Document Object Model)进行动态显)进行动态显示及交互。示及交互。3使用使用XML和和XSLT进行数据交换及相关操作。进行数据交换及相关操作。4使用使用XMLHttpRequest对象与对象与Web服务器进行异步数据交换。服务器进行异步数据交换。5使用使用JavaScript将所有的东西绑定在一起。将所有的东西绑定在一起。6使用使用JavaScript 创建模块化的交互用户界面。创建模块化的交互用户界面。AJAX 向服务器发送请求向服务器发送请求XMLHttpRequ
29、est 是是 AJAX 的基础。的基础。XMLHttpRequest 对象对象所有现代浏览器均支持所有现代浏览器均支持 XMLHttpRequest 对象(对象(IE5 和和 IE6 使用使用 ActiveXObject)。)。XMLHttpRequest 用于在用于在后台与服务器交换数据。这意味着可以在不重新加载整个网后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新页的情况下,对网页的某部分进行更新function loadXMLDoc()var xmlhttp;if(window.XMLHttpRequest)xmlhttp=new XMLHttpRe
30、quest();/code for IE7+,Firefox,Chrome,Opera,Safarielse xmlhttp=new ActiveXObject(Microsoft.XMLHTTP);/code for IE6,IE5xmlhttp.onreadystatechange=function()if(xmlhttp.readyState=4&xmlhttp.status=200)document.getElementById(myDiv).innerHTML=xmlhttp.responseText;xmlhttp.open(GET,/ajax/demo_get.asp,true)
31、;xmlhttp.send();AJAX请求数据请求数据ASP.NET AJAX Ajax的工作原理的工作原理 Ajax的工作原理相当于在用户和服务器之间的工作原理相当于在用户和服务器之间加了一个中间层加了一个中间层,使用户操作与服务器响应异步化。使用户操作与服务器响应异步化。如图所示给出了传统如图所示给出了传统Web应用模式和基于应用模式和基于Ajax的的Web应用模式工作过程的区别。应用模式工作过程的区别。Web请求处理过程服务器服务器服务器服务器客户端客户端客户端客户端发送请求发送请求发送请求发送请求处理请求处理请求处理请求处理请求发送结果发送结果发送结果发送结果结果显示结果显示结果显示
32、结果显示服务器服务器服务器服务器客户端客户端客户端客户端AjaxAjax引擎引擎引擎引擎请求请求请求请求处理请求处理请求处理请求处理请求处理处理处理处理显示显示显示显示传统传统传统传统AjaxAjaxASP.NET AJAX Ajax的优势的优势减轻服务器的负担,因为减轻服务器的负担,因为Ajax的根本理念是按需取数据,的根本理念是按需取数据,所以最大可能地减少了冗余请求和响应对服务器造成的所以最大可能地减少了冗余请求和响应对服务器造成的负担;负担;无刷新更新页面,减少用户实际和心理等待时间;无刷新更新页面,减少用户实际和心理等待时间;更好的用户体验;更好的用户体验;可以把以前的一些服务器负担
33、的工作转移到客户端,利可以把以前的一些服务器负担的工作转移到客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的用客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽的租用成本;负担,节约空间和带宽的租用成本;可以调用外部数据;可以调用外部数据;基于标准化的并被广泛支持的技术,并且不需要插件或基于标准化的并被广泛支持的技术,并且不需要插件或下载小程序;下载小程序;使使Web中的界面与应用分离。中的界面与应用分离。ASP.NET AJAX ASP.NET Ajax控件控件 ASP.NET内置了内置了5个个Ajax控件,分别是控件,分别是ScriptManager、Script
34、ManagerProxy、UpdatePanel、UpdateProgress和和Timer,其,其中中ScriptManager、UpdatePanel和和Timer控控件最常用。件最常用。ASP.NET AJAX ASP.NET Ajax控件控件 1)ScriptManager控件控件ScriptManager控件是控件是ASP.NET中中Ajax功能的中心,功能的中心,该控件可管理一个页面上的所有该控件可管理一个页面上的所有 ASP.NET Ajax资资源,源,ScriptManager控件的常用语法如下:控件的常用语法如下:一个页面在其层次结构中只能包含一个一个页面在其层次结构中只能包
35、含一个 ScriptManagerScriptManager控件,若控件,若要在父页面已具有要在父页面已具有 ScriptManagerScriptManager控件时为嵌套页面、用户控件控件时为嵌套页面、用户控件或组件注册服务和脚本,则需使用或组件注册服务和脚本,则需使用ScriptManagerProxyScriptManagerProxy控件。控件。ASP.NET AJAX ASP.NET Ajax控件控件 2)UpdatePanel控件控件通通过过使使用用 UpdatePanel 控控件件,可可以以使使网网页页参参与与到到部部分分页页更新中,而无需编写任何客户端脚本。更新中,而无需编写
36、任何客户端脚本。UpdatePanel 控控件件内内的的任任何何回回发发控控件件都都将将导导致致异异步步回回发发并刷新面板的内容。并刷新面板的内容。也也可可以以配配置置页页面面上上的的其其他他控控件件来来刷刷新新UpdatePanel控控件件,可可以以通通过过为为 UpdatePanel 控控件件定定义义触触发发器器来来做做到到这这一一点点。UpdatePanel控控件件Triggers 元元素素内内的的 asp:AsyncPostBackTrigger 元元素素定定义义触触发发器器。触触发发器器的的控控件件事事件件是是可可选选的的,如如果果不不指指定定事事件件,则则触触发发器器事事件件是是控
37、控件件的的默默认认事事件件,如如对对于于Button控控件件来来说说,默默认认事事件件是是Click事件。事件。ASP.NET AJAX ASP.NET Ajax控件控件 3)Timer控件控件 ASP.NET Ajax Timer 控件可按照定义的间隔执行回发。控件可按照定义的间隔执行回发。如果将如果将 Timer 控件和控件和 UpdatePanel 控件结合在一起使用,控件结合在一起使用,可以按照定义的间隔启用部分页更新。使用可以按照定义的间隔启用部分页更新。使用 Timer 控件控件也可以发布整个网页。也可以发布整个网页。Timer控件的常用属性如下:控件的常用属性如下:Interval:间隔时间,单位毫秒,每一个间隔时间后将触:间隔时间,单位毫秒,每一个间隔时间后将触发发 Tick事件。事件。Timer要放在其所刷新的要放在其所刷新的UpdatePanel内部,放外面的话内部,放外面的话要设置要设置UpdatePanel的的Triggers属性。属性。ArcGISServerWebADF中的AJAX
限制150内