ArcGISserver Flex编程的图解教程.docx

上传人:b****5 文档编号:7263212 上传时间:2023-01-22 格式:DOCX 页数:18 大小:1.75MB
下载 相关 举报
ArcGISserver Flex编程的图解教程.docx_第1页
第1页 / 共18页
ArcGISserver Flex编程的图解教程.docx_第2页
第2页 / 共18页
ArcGISserver Flex编程的图解教程.docx_第3页
第3页 / 共18页
ArcGISserver Flex编程的图解教程.docx_第4页
第4页 / 共18页
ArcGISserver Flex编程的图解教程.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

ArcGISserver Flex编程的图解教程.docx

《ArcGISserver Flex编程的图解教程.docx》由会员分享,可在线阅读,更多相关《ArcGISserver Flex编程的图解教程.docx(18页珍藏版)》请在冰豆网上搜索。

ArcGISserver Flex编程的图解教程.docx

ArcGISserverFlex编程的图解教程

基于Flex和RESTArcGISServer发布方法

1绪言

WebGIS即万维网地理信息系统,是利用交互网络技术扩展和完善地理信息系统的一项技术。

随着WebGIS的发展,用户对他的表现形式有了更多的期待。

同时开发人员也希望有更简洁和伸缩性高的构架的出现。

WebGIS实现技术总的归纳起来可以分为基于瘦客户端和胖客户端两种方案。

基于瘦客户端的方案中客户端只采用标准的WEB技术,如HTTP、HTML和Javascript。

胖客户端的发难则是通过下载安装插件来增强浏览器的能力。

代表技术有Plug-in、ActiveX控件技术以及JavaApplet技术和SVG技术。

瘦客户端的开发模式已经成为当前WebGIS的主流开发方式,基于B/S架构的WebGIS得到迅速发展,但是随着互联网影响的不断扩大,以及GIS技术广泛应用到各行各业中,人们已逐渐不满足于目前的WebGIS网页技术的表现效果和交互性,而希望WebGIS有类似C/S的表现效果和交互性。

RIA(RichInternetApplication,富互联网应用系统)是新一代网络应用程序,概念最早是由Macromedia公司在2002年提出的。

它把桌面应用程序的交互性和用户体验与传统的Web应用的部署灵活性和成本分析结合起来。

它具有无需刷新页面并提供快速界面响应等优点。

光就用户体验来讲,RIA前景一片看好。

基于RIA客户端开发的新框架也不断涌跃,有代表性的如微软的Silverlight、Sun公司的JavaFX以及Adobe公司的Flex。

Flex的优势是先入为主,据Adobe公司2007年底的调查显示,经过近十年的推广,互联网上95%以上的计算机都安装了FlashPlayer9,而且这个数字正以每天百万级的速度在增长。

Flex与REST进行结合是目前非常热门的分布式系统解决方案之一[1]。

将这个方案应用到WebGIS中,就能轻便地建立起表现力丰富、交互性极好的基于Web的地图应用程序。

REST式软件构架是RoyThomasFielding博士在2000年首次提出的一种面向资源的构架。

ESRI公司在2008年10月底发布了一套强大的基于Flex的ArcGISAPIforFlex类库。

本文基于这种Flex+REST构架,重点介绍如何发布REST服务,并且在FLEX中配置ArcGISAPIforFlex类库以及访问ArcGISServer发布的REST服务。

2基于Flex/REST的WebGIS系统发布方法

基于Flex+REST的WebGIS系统总体构架相对于与传统的REST风格构架组成要简单些,只包括两个部分:

ArcGISServer9.3服务端和装有FlashPlayer的浏览器端。

服务器端采用ArcGISServer9.3,通过ArcGISServerManager发布为REST服务,在FlexBuilder3.0中配置GIS服务的API环境,利用API进行实例开发,开发完成后进行最终测试、发布。

2.1地图发布

WebGIS系统展现和操作需要的资源,可以通过GIS服务器发布。

文本重点学习地图服务资源的发布方法和步骤。

第一步:

制作地图文档。

基于RESTAPI的WebGIS应用从ArcGISServer客户端得到的地图服务数据其实是由一些地图服务图层(包括ArcGISTiledMapServiceLayer或ArcGISDynamicMapServiceLayer或ArcGISImageServiceLayer或ArcIMSMapServiceLayer)组成的。

其中每一个地图服务层都通过URL对应ArcGISServer中发布的一个MapService,而每一个MapService都是源自于一个地图文档(MapDocument)。

地图文档的扩展名是*.mxd。

在ArcMap中设置好需要显示的地图图层,以及它们的显示次序、符号显示特征等属性后保存为mxd文件即可(如下图所示)。

第二步:

发布地图服务并设置服务的属性。

ArcGISServer提供了两种方法来发布空间服务。

一种是利用ArcCatalog中的ArcGISServer服务管理方式进行发布;另一种方式是通过网页形式的ArcGISServerManager方式进行服务的发布与管理。

文本学习第二种方式发布和管理服务,该方式可以摆脱ArcGIS的桌面环境,方便在远程发布服务。

利用ArcGISServerManager发布管理GIS资源的具体步骤如下:

1、输入用户名和密码登录ArcGISServerManager。

2、单击服务器管理器中的Services选项卡,点击“AddNewService”。

在“Name”中输入要发布的服务名,“Type”为MapService,并点击“下一步”。

3、在“MapDocument”中浏览需要发布的地图文档,并点击“下一步”。

4、点击“下一步”。

5、点击“下一步”。

6、点击“下一步”。

7、如果想改变任何属性,可以点击“Previous”返回上一步修改,点击“Finish”完成发布。

8、单击服务器管理器中的Services选项卡,点击“ManageServices”,可以对已经发布的服务项进行管理,如启动、停止、暂停、重启等。

2.2测试浏览REST服务

ArcGISServer9.3引入了服务浏览器。

可以通过浏览器查看ArcGISServer发布的服务,只要在浏览器中输入URL地址,就可以访问ArcGISServer的REST服务目录,方便查看可用的地理信息系统网络服务,也可以获取开发过程中的有用信息。

在浏览器中打开ArcGISServer上的目录,例如,打开http:

//chica/ArcGIS/rest/services,首先会看到主页(如下图),其中列出了所有服务目录以及含有更多服务的文件夹。

除了服务名称,还可以看到服务类型,如MapServer。

点击服务名称,可以获得更多的信息。

如果点击的是地图服务器,用户可以看到的信息包括图层名称、文档信息以及支持的程序接口等。

例如点击ccc之后,如下图所示。

注意其中两点,a)如果继续点击图层链接,可以了解服务中每个图层的信息。

通过这种方式,服务目录可以展示服务的大量元数据。

例如点击“ExportOutput”,可以查看该图层的详细信息。

b)该地图服务支持的程序接口有REST和SOAP。

继续点击“REST”,会出现REST风格的信息描述。

http:

//chica/ArcGIS/rest/services/ccc/MapServer?

f=json&pretty=true。

2.3在Flex中调用该服务

用ArcGISAPIforFlex开发的程序使用Flex作为前端展现,后台连接ArcGISServerRESTService,而且不需要在本机上安装ArcGISServer,只要通过网络连接到其他机器上的ArcGISServer即可访问资源了。

在Flex中可以将ArcGISServer的地图和任务应用到Web应用程序中。

2.3.1配置ArcGISAPIforFlex类库

在FlexBuilder3(如下图)的开发环境中,可以轻松集成配置所需的API。

ArcGISAPIforFlex是免费的。

在使用ArcGISAPIforFlex之前,我们首先需要在FlexBuilder3中,对它进行配置。

先从ArcGISResourceCenters网站[2](网址:

APIforFlex类库(*.SWC)到本地机上,下载之后部署到FlexBuilder3中。

具体步骤如下:

1、打开FlexBuilder3,对新建的工程,右击选择“Properties”。

2、左侧选择“FlexBuilderPath”,右侧选择“Library”,点“AddSWC”。

3、选择要添加的SWC,点击OK即可。

选择需要添加的SWC

添加的ArcGISAPIforFlex类库(SWC)

2.3.2在Flex中调用REST服务

配置好开发环境之后,就可以用MXML和ActionScript3.0调用FlexAPI中的类编写代码来调用ArcGISServer中的资源了。

以下还是以前面发布的地图服务资源为例,说明在REST风格构架下,如何方便地利用URL调用ArcGISServer服务器上的资源。

如下是摘录的获取本地ArcGISServer中地图资源的部分代码:

(地图服务名为”ccc”)。

Map>

extent>

Extentxmin="121.4"ymin="31.15"xmax="121.6"ymax="31.35"/>

extent>

ArcGISDynamicMapServiceLayerurl=http:

//chica/ArcGIS/rest/services/ccc/MapServer/>

GraphicsLayersymbol="{infoSymbol1}">

Graphic>

geometry>

MapPointx="121.545"y="31.205"/>

geometry>

attributes>

Object>

myImageURL>assets/hm.jpg

myImageURL>

myTitle>上海副中心:

花木

myTitle>

Object>

attributes>

Graphic>

GraphicsLayer>

Map>

程序中调用ArcGISServer地图资源只需要在地图标签中提供URL地址即可。

该URL地址可以利用ArcGISServer服务目录查看获得,详见前一节所述。

因为此资源是未缓存的动态图层,所以使用

ArcGISDynamicMapServiceLayer/>图层标签,如果是缓存的Tiled图层,则应使用

ArcGISTiledMapServiceLayer/>标签。

GraphicaLayer图层使得系统能够在地图之上叠加图形(graphics)。

它有符号属性(Symbol),对添加到该层中的点、线、面设置不同的样式。

InfoSymbolid="infoSymbol1">

infoRenderer>

Component>

VBox>

Imagewidth="100%"height="100%"source="{data.myImageURL}"/>

Labeltext="{data.myTitle}"/>

VBox>

Component>

infoRenderer>

InfoSymbol>

地图控件还可以添加范围属性extent,可以设置初始化时地图显示的范围,如设置为上海市区范围。

(如下图所示)

2.3.3编译调试、发布

可以使用Flex中的Flex编译器编译成SWF文件。

上述方法是在FlexBuilder3中编译程序后得到的调试版本的SWF文件,当系统已经完成时,可以在FlexBuilder3中使用导出发布编译(ExportReleaseBuild)创建最终的版本。

3结论和思考

基于Flex+REST构架的是一种很好的WebGIS应用程序开发模式。

在重点学习实践REST地图服务发布和Flex调用服务的过程后,有以下几点总结:

1、利用ArcGISServerManager发布REST地图服务,不需要在本地机上安装ArcGISServer,只要连接到其他机器上的ArcGISServer就可以访问资源了。

2、在Flex中调用服务时,只需要从ArcGISServer服务目录查看得到REST服务的URL地址,并提供给MXML中的相应标签属性,即可实现对该服务的访问。

3、ArcGISAPIforFlex提供了很多在WebGIS程序开发中常用到的功能组件,比如地图放大、查询、访问WebService等,可以方便WebGIS程序开发员的使用。

在本科阶段学习过WebGIS,当时学习的目的主要在于初识WebGIS,对其概念、开发构架以及实现技术的认识都比较浅显。

在研究生阶段,学习的目的转为更深入的认识WebGIS并且试图在了解的基础上,实践一些技术实例。

通过这个学期的学习和实践,在理论学习和实践上都受益颇多。

4实例扩展

将Flex应用到WebGIS领域中,可以给用户带来比较炫酷的界面和交互式体验。

目前,在国外已经有一些大公司打造了基于Flex客户端的地图API,让我们来浏览一下这些地图网站的风采。

4.1Yahoo!

MapsFlashAPI

雅虎在2005年11月推出地图服务的时候就直接采用了Flash,后来又率先试用Flex开发Map系统。

因为这可以提供其它服务商所不具备的交互体验。

这款Yahoomaps集合了搜索、地图浏览、卫星地图、鹰眼图等基础功能。

雅虎同时推出Yahoo!

MapsFlashAPI,使得开发人员开发自己的地图应用变得简单,能够很方便地将许多增强功能和精确的地图数据集成到自己的Flex应用程序中。

雅虎地图网址为[3]:

4.2GoogleMapsAPIforFlash

GoogleMapsAPIforFlash使得Flex开发人员能够把GoogleMap嵌入到Flex应用程序中。

该API提供了很多实用的工具用到操控GoogleMap。

利用该API,可以处理地图事件、添加地图控件、在地图上添加标记或者在地图上面画线,还可以利用Geocoding将地址转换成经纬度数据。

利用此API开发的著名网络系统有Up2Maps。

它可以以专题地图的方式查看和发布研究数据。

用户可以直接在行政边界上输入数据或者以电子数据表Excel的形式上传数据,生成自己的专题地图,导出插入到自己的文件中去。

此外,还有在数据地图中查找邮政编码、查看所在区域的人口数据(TreeMap)、在不同边界查看数据、从库(标签)中自定义地图等功能。

系统网址为[4]:

4.3ESRI的ArcGISAPIforFlex

ESRI公司在2008年10月底发布了一套强大的基于Flex的ArcGISAPIforFlex类库,可以在RIA(富互联网应用系统)中实现丰富的GIS功能,除此之外,还可以访问WebServices的方式调用ArcGISServer的服务资源,例如地图集、地址定位和地理处理模型等,能够在ArcGISServer之上开发丰富的互联网应用程序。

基于ArcGISServerFlexAPI开发的著名WebGIS系统有ViggiaTreno,这是一个意大利全国列车时刻查询系统,可以实时查看某路列车是否晚点以及晚点时间,实时跟踪列车行程。

系统网址为[5]:

http:

//www.viaggiatreno.it/viaggiatreno/vt.html。

系统界面如下图所示。

参考文献

[1]袁煜锋.基于Flex与REST的WEBGIS研究[D].上海:

华东师范大学,2009.

[2]ArcGISResourceCenters[Z].2010

[3]Yahoo!

Maps,DrivingDirections,andTraffic[Z].2010

[4]Up2Maps-Create&sharethematicdatamapsonGoogleMaps[Z].2010

[5]Trenitalia-ViaggiaTreno[Z].http:

//www.viaggiatreno.it/viaggiatreno/vt.html.2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1