ArcGIS_server Flex编程的图解教程.doc_第1页
ArcGIS_server Flex编程的图解教程.doc_第2页
ArcGIS_server Flex编程的图解教程.doc_第3页
ArcGIS_server Flex编程的图解教程.doc_第4页
ArcGIS_server Flex编程的图解教程.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Flex和RESTArcGIS Server发布方法1 绪言WebGIS即万维网地理信息系统,是利用交互网络技术扩展和完善地理信息系统的一项技术。随着WebGIS的发展,用户对他的表现形式有了更多的期待。同时开发人员也希望有更简洁和伸缩性高的构架的出现。WebGIS实现技术总的归纳起来可以分为基于瘦客户端和胖客户端两种方案。基于瘦客户端的方案中客户端只采用标准的WEB技术,如HTTP、HTML和Javascript。胖客户端的发难则是通过下载安装插件来增强浏览器的能力。代表技术有Plug-in、ActiveX控件技术以及Java Applet技术和SVG技术。瘦客户端的开发模式已经成为当前WebGIS的主流开发方式,基于B/S架构的WebGIS得到迅速发展,但是随着互联网影响的不断扩大,以及GIS技术广泛应用到各行各业中,人们已逐渐不满足于目前的WebGIS网页技术的表现效果和交互性,而希望WebGIS有类似C/S的表现效果和交互性。RIA(Rich Internet Application,富互联网应用系统)是新一代网络应用程序,概念最早是由Macromedia公司在2002年提出的。它把桌面应用程序的交互性和用户体验与传统的Web应用的部署灵活性和成本分析结合起来。它具有无需刷新页面并提供快速界面响应等优点。光就用户体验来讲,RIA前景一片看好。基于RIA客户端开发的新框架也不断涌跃,有代表性的如微软的Silverlight、Sun公司的JavaFX以及Adobe公司的Flex。Flex的优势是先入为主,据Adobe公司2007年底的调查显示,经过近十年的推广,互联网上95%以上的计算机都安装了FlashPlayer9,而且这个数字正以每天百万级的速度在增长。Flex与REST进行结合是目前非常热门的分布式系统解决方案之一1。将这个方案应用到WebGIS中,就能轻便地建立起表现力丰富、交互性极好的基于Web的地图应用程序。REST式软件构架是Roy Thomas Fielding博士在2000年首次提出的一种面向资源的构架。ESRI公司在2008年10月底发布了一套强大的基于Flex的ArcGIS API for Flex类库。本文基于这种Flex+REST构架,重点介绍如何发布REST服务,并且在FLEX中配置ArcGIS API for Flex类库以及访问ArcGIS Server发布的REST服务。2 基于Flex/REST的WebGIS系统发布方法基于Flex+REST的WebGIS系统总体构架相对于与传统的REST风格构架组成要简单些,只包括两个部分:ArcGIS Server 9.3服务端和装有FlashPlayer的浏览器端。服务器端采用ArcGIS Server9.3,通过ArcGIS Server Manager发布为REST服务,在Flex Builder3.0中配置GIS服务的API环境,利用API进行实例开发,开发完成后进行最终测试、发布。2.1 地图发布WebGIS系统展现和操作需要的资源,可以通过GIS服务器发布。文本重点学习地图服务资源的发布方法和步骤。第一步:制作地图文档。基于REST API的WebGIS应用从ArcGIS Server客户端得到的地图服务数据其实是由一些地图服务图层(包括ArcGISTiledMapServiceLayer或ArcGISDynamicMapServiceLayer或ArcGISImageServiceLayer或ArcIMSMapServiceLayer)组成的。其中每一个地图服务层都通过URL对应ArcGIS Server中发布的一个Map Service,而每一个Map Service都是源自于一个地图文档(Map Document)。地图文档的扩展名是*.mxd。在ArcMap中设置好需要显示的地图图层,以及它们的显示次序、符号显示特征等属性后保存为mxd文件即可(如下图所示)。第二步:发布地图服务并设置服务的属性。ArcGIS Server提供了两种方法来发布空间服务。一种是利用ArcCatalog中的ArcGIS Server服务管理方式进行发布;另一种方式是通过网页形式的ArcGIS Server Manager方式进行服务的发布与管理。文本学习第二种方式发布和管理服务,该方式可以摆脱ArcGIS的桌面环境,方便在远程发布服务。利用ArcGIS Server Manager发布管理GIS资源的具体步骤如下:1、 输入用户名和密码登录ArcGIS Server Manager。2、 单击服务器管理器中的Services选项卡,点击“Add New Service”。在“Name”中输入要发布的服务名,“Type”为Map Service,并点击“下一步”。3、 在“Map Document”中浏览需要发布的地图文档,并点击“下一步”。4、 点击“下一步”。5、 点击“下一步”。6、 点击“下一步”。7、 如果想改变任何属性,可以点击“Previous”返回上一步修改,点击“Finish”完成发布。8、单击服务器管理器中的Services选项卡,点击“Manage Services”,可以对已经发布的服务项进行管理,如启动、停止、暂停、重启等。2.2 测试浏览REST服务ArcGIS Server9.3引入了服务浏览器。可以通过浏览器查看ArcGIS Server发布的服务,只要在浏览器中输入URL地址,就可以访问ArcGIS Server的REST服务目录,方便查看可用的地理信息系统网络服务,也可以获取开发过程中的有用信息。在浏览器中打开ArcGIS Server上的目录,例如,打开http:/chica/ArcGIS/rest/services,首先会看到主页(如下图),其中列出了所有服务目录以及含有更多服务的文件夹。除了服务名称,还可以看到服务类型,如MapServer。点击服务名称,可以获得更多的信息。如果点击的是地图服务器,用户可以看到的信息包括图层名称、文档信息以及支持的程序接口等。例如点击ccc之后,如下图所示。 注意其中两点,a) 如果继续点击图层链接,可以了解服务中每个图层的信息。通过这种方式,服务目录可以展示服务的大量元数据。例如点击“Export Output”,可以查看该图层的详细信息。b)该地图服务支持的程序接口有REST和SOAP。继续点击“REST”,会出现REST风格的信息描述。http:/chica/ArcGIS/rest/services/ccc/MapServer?f=json&pretty=true。2.3 在Flex中调用该服务用ArcGIS API for Flex开发的程序使用Flex作为前端展现,后台连接ArcGIS Server REST Service ,而且不需要在本机上安装ArcGIS Server,只要通过网络连接到其他机器上的ArcGIS Server即可访问资源了。在Flex中可以将ArcGIS Server的地图和任务应用到Web应用程序中。2.3.1 配置ArcGIS API for Flex类库在Flex Builder3(如下图)的开发环境中,可以轻松集成配置所需的API。ArcGIS API for Flex是免费的。在使用ArcGIS API for Flex之前,我们首先需要在Flex Builder3中,对它进行配置。先从ArcGIS Resource Centers网站2(网址:/arcgisserver/apis/flex/)上免费下载ArcGIS API for Flex类库(*.SWC)到本地机上,下载之后部署到Flex Builder3中。具体步骤如下:1、打开Flex Builder3,对新建的工程,右击选择“Properties”。 2、左侧选择“Flex Builder Path”,右侧选择“Library”,点“Add SWC”。3、选择要添加的SWC,点击OK即可。选择需要添加的SWC添加的ArcGIS API for Flex类库(SWC)2.3.2 在Flex中调用REST服务配置好开发环境之后,就可以用MXML和ActionScript3.0调用Flex API中的类编写代码来调用ArcGIS Server中的资源了。以下还是以前面发布的地图服务资源为例,说明在REST风格构架下,如何方便地利用URL调用ArcGIS Server服务器上的资源。如下是摘录的获取本地ArcGIS Server中地图资源的部分代码:(地图服务名为”ccc”)。 assets/hm.jpg上海副中心:花木程序中调用ArcGIS Server地图资源只需要在地图标签中提供URL地址即可。该URL地址可以利用ArcGIS Server服务目录查看获得,详见前一节所述。因为此资源是未缓存的动态图层,所以使用图层标签,如果是缓存的Tiled图层,则应使用标签。GraphicaLayer图层使得系统能够在地图之上叠加图形(graphics)。它有符号属性(Symbol),对添加到该层中的点、线、面设置不同的样式。地图控件还可以添加范围属性extent,可以设置初始化时地图显示的范围,如设置为上海市区范围。(如下图所示)2.3.3 编译调试、发布可以使用Flex中的Flex编译器编译成SWF文件。 上述方法是在Flex Builder3中编译程序后得到的调试版本的SWF文件,当系统已经完成时,可以在Flex Builder3中使用导出发布编译(Export Release Build)创建最终的版本。3 结论和思考基于Flex+REST构架的是一种很好的WebGIS应用程序开发模式。在重点学习实践REST地图服务发布和Flex调用服务的过程后,有以下几点总结:1、利用ArcGIS Server Manager发布REST地图服务,不需要在本地机上安装ArcGIS Server,只要连接到其他机器上的ArcGIS Server就可以访问资源了。2、在Flex中调用服务时,只需要从ArcGIS Server服务目录查看得到REST服务的URL地址,并提供给MXML中的相应标签属性,即可实现对该服务的访问。3、ArcGIS API for Flex提供了很多在WebGIS程序开发中常用到的功能组件,比如地图放大、查询、访问WebService等,可以方便WebGIS程序开发员的使用。 在本科阶段学习过WebGIS,当时学习的目的主要在于初识WebGIS,对其概念、开发构架以及实现技术的认识都比较浅显。在研究生阶段,学习的目的转为更深入的认识WebGIS并且试图在了解的基础上,实践一些技术实例。通过这个学期的学习和实践,在理论学习和实践上都受益颇多。4 实例扩展将Flex应用到WebGIS领域中,可以给用户带来比较炫酷的界面和交互式体验。目前,在国外已经有一些大公司打造了基于Flex客户端的地图API,让我们来浏览一下这些地图网站的风采。4.1 Yahoo! Maps Flash API雅虎在2005年11月推出地图服务的时候就直接采用了Flash,后来又率先试用Flex开发Map系统。因为这可以提供其它服务商所不具备的交互体验。这款Yahoo maps集合了搜索、地图浏览、卫星地图、鹰眼图等基础功能。雅虎同时推出Yahoo!Maps Flash API,使得开发人员开发自己的地图应用变得简单,能够很方便地将许多增强功能和精确的地图数据集成到自己的Flex应用程序中。雅虎地图网址为3:/,界面如下图所示。4.2 Google Maps API for FlashGoogle Maps API for Flash使得Flex开发人员能够把Google Map 嵌入到Flex应用程序中。该API提供了很多实用的工具用到操控Google Map。利用该API,可以处理地图事件、添加地图控件、在地图上添加标记或者在地图上面画线,还可以利用Geocoding将地址转换成经纬度数据。利用此API开发的著名网络系统有Up2Maps。它可以以专题地图的方式查看和发布研究数据。用户可以直接在行政边界上输入数据或者以电子数据表Excel的形式上传数据,生成自己的专题地图,导出插入到自己的文件中去。此外,还有在数据地图中查找邮政编码、查看所在区域的人口数据(TreeMap)、在不同边界查看数据、从库(标签)中自定义地图等功能。系统网址为4:/。系统界面如下图所示。4.3 ESRI的ArcGIS API for FlexESRI公司在2008年10月底发布了一套强大的基于Flex的ArcGIS API for Flex类库,可以在RIA(富互联网应用系统)中实现丰富的GIS功能,除此之外,还可以访问Web Services的方式调用ArcGIS Server的服务资源,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论