资源预览内容
第1页 / 共121页
第2页 / 共121页
第3页 / 共121页
第4页 / 共121页
第5页 / 共121页
第6页 / 共121页
第7页 / 共121页
第8页 / 共121页
第9页 / 共121页
第10页 / 共121页
亲,该文档总共121页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ArcGIS RIA开发实践ESRI中国(北京)有限公司【背景篇】RIA介绍 RIA相比传统Web的优势 RIA的局限性 目前主流RIA技术及特点RIA相比传统Web的优势 表现力丰富 网络效率高 交互能力强 面向操作系统和浏览器透明 沙箱提供更可靠的安全性 易于与现有系统集成RIA的局限性 客户端引擎的下载和安装 目前难于做SEO目前主流RIA技术及特点 Adobe Flex/Flash Microsoft Silverlight Sun JavaFX CurlArcGIS Server的REST接口 REST的概念 通过REST的接口使用ArcGIS功能REST的概念 资源通过URI来指定和操作 对资源的操作包括获取、创建、修改和删除资源,这些操 作正好对应HTTP协议提供的GET、POST、PUT和 DELETE方法 连接是无状态性的 能够利用Cache机制来提高性能通过REST的接口使用ArcGIS功能 REST服务目录 Java:http:/:8399/argis/rest .Net: http:/arcgis/rest 清空REST的缓存 REST管理界面 http:/:8399/arcgis/rest/admin 某个地图服务REST URL: http:/localhost:8399/arcgis/rest/services /AgsSample/World/MapServer 点击“Export Map”链接 跳转URL: http:/localhost:8399/arcgis/rest/services /AgsSample/World/MapServer/export?bbo x=-198.000000454545,- 99.0000004545455,198.000009545455,99.0 000095454545 总结: ArcGIS Server REST接口中,请求服务的URL一般 应该是这样的:http:/:/arcgis/rest/servic es/?【Flex篇】【ArcGIS Flex API 基础】Flex的历史和现状 Flash Flex Adobe与MacromediaArcGIS Flex API概述 ArcGIS在RIA领域的第一个产品 开发运行于浏览器中的Web应用或者运行于桌面的AIR 应用 非常便捷地使用地图功能和REST接口提供的GIS查询及 分析功能 专注于GIS功能的实现而不重复地创造组件一些基本概念 MapServiceLayer GraphicLayer与Graphic Geometry SymbolMapServiceLayer 对应ArcGIS 发布的地图服务 不同种类的地图服务将会对应不同的 MapServiceLayerArcGISDynamicMapServiceLayerArcGIS Server发布的动态地图服务ArcGISTiledMapServiceLayerArcGIS Server发布的切片地图服务ArcGISImageServiceLayerArcGIS Image Server发布的影像服 务ArcIMSMapServiceLayerArcIMS发布的地图服务GraphicLayer与Graphic 客户端的图层 根据各种情况动态地在客户端显示一些符号化的几何对象 Graphic Graphic是一个可视化的、可响应鼠标事件的客户端要 素 Graphic3个很重要的属性:geometry、symbol和 attributesGeometryMapPoint点Multipoint多点Polyline多段线Polygon多边形Extent边界范围Symbol 定义了Geometry使用什么符号表现出来 一般MarkerSymbol、LineSymbol、FillSymbol 还有TextSymbol、InfoSymbol等其它符号帮助进行 其它信息的辅助表达SimpleMarkerSymbol简单点符号 SimpleLineSymbol简单线 符号 SimpleFillSymbol简单填充符号 CartographicLineSymbol制图线符号,可定义端点、折点样式 PictureMarkerSymbol图片点符号 PictureFillSymbol图片填充符号 TextSymbol文字符号 InfoSymbol信息提示符号 CompositeSymbol复合符号地图功能组件 Map组件 Navigation工具 Draw工具 InfoWindow窗口Map组件 ArcGIS Flex API中唯一的可视化组件 ArcGIS Flex API中所有的操作和功能都会在Map中 进行 Map中包含各种Layer Map中的Layer有两种,一种是对应某个地图服务的 MapServiceLayer、一种是用以绘制自定义要素的 GraphicLayer 添加Map和Layer的代码: 控制地图缩放的zoomSlider、地图比例尺scaleBar以 及ESRI的logo 可以隐藏 zoomSlider和scaleBar除了可以被隐藏掉,还可以通 过定制样式来改变外观 以下的CSS代码将Map的zoomSlider移到了右边:.mapStyle navigation-style-name: navigationStyle; .navigationStyle top: 6;right: 6; 地图四周的导航按钮 地图中心的十字符号 拉框缩放的方框样式 Map有很灵活的可配置性 各种元素的外观也很容易定制 如果有特殊的需要,Map也可以通过隐藏所有元素,你 则可以在此基础上加上自己的内容Navigation工具 提供了对Map进行导航的诸多功能 它可以实现漫游、拉框放大、拉框缩小等类似ADF中 Tool的功能和前一视图、后一视图、全图等类似ADF中 Command的功能 它并不是一个工具条,而是提供了一些功能,你可以把 Flex组件绑定到Navigation的功能上 Navigation中漫游、拉框放大、拉框缩小等功能和工具 条按钮的绑定 借助Flex中的ToggleButtonBar作为这些功能的宿主漫游拉框放大拉框缩小 Navigation中前一视图、后一视图、全图等功能和工具 条按钮的绑定 前一视图、后一视图的按钮并不是一直可用Draw工具 Draw工具提供了在客户端绘制各种几何对象的功能 用一个ToggleButtonBar去绑定Draw工具的功能private function itemClickHandler(event:ItemClickEvent):voidswitch (event.index)case 0:draw.activate(Draw.MAPPOINT);break;case 1:draw.activate(Draw.MULTIPOINT);break;case 2:draw.activate(Draw.LINE);break;case 3:draw.activate(Draw.POLYLINE);break;case 4:draw.activate(Draw.FREEHAND_POLYLINE);break;case 5:draw.activate(Draw.POLYGON);break;case 6:draw.activate(Draw.FREEHAND_POLYGON);break;case 7:draw.activate(Draw.EXTENT);break;InfoWindow窗口 InfoWindow窗口主要提供在Map上弹出信息提示的功 能 定义一个Map的时候,Map会生成一个自带的 InfoWindow并放置在自己的infoWindow属性中 下面我们在地图上弹出一个InfoWindow,并在其中放 上一个图片:var image:Image = new Image(); image.source = “http:/www.esrichina-bj.cn/images/in_flashRig.jpg“;map.infoWindow.content = image; map.infoWindow.show(new MapPoint(116, 40); InfoWindow使用的重点在于其content属性,它是 InfoWindow窗口中的信息内容,它对应一个 DisplayObject的对象,言下之意任何Flex中的可视组 件都可以放置于其中。 从上面的内容,我们知道了如何使用一个Map来获得和 显示ArcGIS Server发布的服务,然后使用 Navigation工具来进行导航,用Draw工具在客户端绘 制几何对象,用InfoWindow来显示提示信息。对于地 图操作的浏览、交互我们都已经涉及到了。下面,我们将 会在地图的基础上使用更多的ArcGIS Server的GIS功 能。常用功能 QueryTask FindTask IdentifyTask GeometryService Geoprocessor LocatorQueryTask QueryTask是一个进行空间和属性查询的功能类 可以在某个地图服务的某个子图层内进行查询 QueryTask进行查询的地图服务并不必须加载到Map 中进行显示 QueryTask的执行需要两个先决条件:一个是需要查询 的图层URL、一个是进行查询的过滤条件 QueryTask有个url属性指向需要查询的子图层的 REST URL(索引从顶部图层为0开始) 当需要进行查询的时候我们需要调用QueryTask的 execute方法 execute方法的第一个参数就是对查询进行设置的 Query对象,在这个Query对象的属性中我们可以设置 过滤条件和返回内容。 在Query对象的属性中,geometry和 spatialRelationship属性用于定义空间查询的条件、 where属性用于定义属性查询的条件 从onResult方法的QueryEvent参数中我们可以获得 查询返回的所有结果集featureSet,featureSet的 features属性中存放了所有查询结果的Graphic对象private function onResult(event:QueryEvent):voidvar featureSet:FeatureSet = event.featureSet;resultLayer.clear();for each (var g:Graphic in featureSet.features)resultLayer.add(g);FindTask 在某个地图服务中进行属性查询的功能类 需要一个FindParameters对象作为参数 url属性需要指向所查询的地图服务的REST URLprivate function doFind():void var params:FindParameters = new FindParameters(); params.contains = true; params.layerIds = 0,1,2; params.returnGeometry = true; params.searchFields = “Name“, “Address“; params.searchText = keyword.text;findTask.execute(params); priv
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号