arcgis for flex api version3.7 教程:5.使用Editor对地图进行编辑

ArcGIS的网络编辑操作(可以认为是网页端的相关地理处理操作)需要feature service来提供符号信息和几何数据信息。feature service允许你创建自定义的REST方法节点,用来存储和查询地理数据,如点、线和面。存储自定义的渲染规则和元数据信息,例如地名,评级,地址等。对存储的数据进行分析和计算。

ArcGIS API for Flex提供的Featurelayer允许你获取并编辑矢量地图数据。Feature services是基于feature layer来进行操作的。feature layers能够做很多事情,能够关联引用map service或者是feature service中的一个图层用来显示或操作。所以,当你需要对地图feature layer进行编辑操作时,那这个feature Layer就需要引用feature service中的一个图层。

web端的地图编辑操作需要提前发布好的feature service,它包含了一个图层的地理图形信息和属性表信息。所以,geometry services能够用来完成一系列的web编辑任务。为了能够使用开发API中一些主要的编辑控件,就必须要有一个正在运行的geometry service.

当执行编辑操作时,你的web应用会告诉feature layer哪些属性信息发生变化了,如果有可能,也可以说明地理信息是如何变化的。编辑完成后,feature layer也会更新展示编辑后的结果。feature services可以是在ArcGIS Online上的服务,也可以是自已建的服务。

从feature service获取数据:

从feature service获取数据的意思,或是说是具体操作是,初始化一个feature layer并显示到地图上。初始化feature service时,你所要做的就是设置你要用的URL,feature service的URL,也可以是带有用户权限凭证的服务。本节中使用的是公共权限的服务,不需要你提供任何用户凭证(credentials)。图层添加 到地图上后,就可以引用一个geometry service。

1 创建一个新的FB工程,引入ArcGIS相关的库和命名空间

2 添加地图控件,初始设置一些属性信息:空间参考,地图显示范围,底图等,最后添加一个feature layer并设置其URL和其他信息。

代码如下:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:esri="http://www.esri.com/2008/ags"

<esri:Map id="myMap" wrapAround180="true">
   <esri:extent>
      <esri:Extent id="socal"
       xmin="-13471000" ymin="3834000" xmax="-12878000" ymax="4124000">
         <esri:SpatialReference wkid="102100"/>
      </esri:Extent>
   </esri:extent>

   <esri:ArcGISTiledMapServiceLayer
    url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>

   <esri:FeatureLayer id="incidentsAreas"
    mode="snapshot"
    outFields="[data_security,description]"
    url="http://sampleserver6.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/FeatureServer/2"/>
</esri:Map>
...

3 添加geometry service

代码如下:

xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:esri="http://www.esri.com/2008/ags"

<fx:Declarations>
  <esri:GeometryService id="myGeometryService"
   url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/>
</fx:Declarations>

<esri:Map id="myMap" wrapAround180="true">
   <esri:extent>

</s:Application>

4 添加Editor控件用来操作地图,该控件包含大量的编辑功能,不需要单独开发,你所要做的只是绑定相关的geometry service,就这么简单。

代码如下:

<esri:FeatureLayer id="incidentsAreas"
   mode="snapshot"
   outFields="[data_security,description]"
   url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/FeatureServer/2"/>
</esri:Map>

   <esri:Editor id="myEditor"
    width="100%" height="200"
    geometryService="{myGeometryService}"
    map="{myMap}"/>

...

5 按下来,在应用初始化函数代码中设置绑定Editor的featurelayers

...
xmlns:esri="http://www.esri.com/2008/ags"
initialize="application1_initializeHandler(event)">

<fx:Script>
<![CDATA[
   import mx.events.FlexEvent;

   protected function application1_initializeHandler(event:FlexEvent):void
   {
      myEditor.featureLayers = [ incidentsAreas ];
   }
]]>
</fx:Script>

6 最后,保存运行。会发现排版布局不合理,下面让我们来调整一下页面布局。

7 在代码中增加一个layout标签来控制优化布局。

...
initialize="application1_initializeHandler(event)"

<s:layout>
   <s:VerticalLayout/>
</s:layout>

8 通过style标签设置infowindow的风格。

...
<s:layout>
   <s:VerticalLayout/>
</s:layout>

<fx:Style>
   @namespace s "library://ns.adobe.com/flex/spark";
   @namespace mx "library://ns.adobe.com/flex/mx";
   @namespace esri "http://www.esri.com/2008/ags";

   esri|InfoWindow
   {
    background-color: #FFFFFF;
    border-thickness: 2;
   }
</fx:Style>

<fx:Script>

   <![CDATA[
      import mx.events.FlexEvent;

...

9 保存运行应用

10 点击地图上的一个位置,会高亮显示该区域。点击完成后,会弹出信息窗口(infowindow)。然后可以对其属性信息进行编辑

界面如下所示:

时间: 2024-08-01 18:52:40

arcgis for flex api version3.7 教程:5.使用Editor对地图进行编辑的相关文章

arcgis for flex api version3.7 教程:8.创建地图

地图概述: arcgis for flex api提供了大量的方法来实现地图操作和交互.首先,地图(map)支持添加各种类型的图层或服务.图层数据来源可以是arcgis server.Bing maps.graphics layers等.此外还有可以使用网络公开的其他服务像arcgis.com或自建的.网络地图服务有相似的一面,都通过一定的方法支持各种类型的图层 ,任务和数据(数据可以扩展,例如可以是.csv和.gpx文件作为一个组合).下面我们将对此做详细讨论. 创建地图并设置显示范围和空间参

arcgis for flex api version3.7 教程:10.打印服务功能简介

高质量的打印功能是arcgis server 10.1的新特性功能.arcgis api for flex在3.x版本之前使用的是flex sdk基本的打印功能.而完全的在线制图打印功能需要web应用来实现. arcgis api for flex 高级打印功能是通过printtask类来实现的.该类通过arcgis 10.1版本的export web map GP服务来实现,可以进行配置,提供输出设置,可以是PDF,PNG,SVG. 在作用GP服务之前,需要启动arcgis 10.1打印服务(

arcgis for flex api version3.7 教程:7.使用Directions查询路线(最短路径分析)

通过使用Directons组件来计算两点或多点之间的路线,在地图上添加出行路线并显示逐步说明.本节主要是讲解如何添加使用Directons组件,自定义布局让组件面板显示在屏幕左边,与地图窗口分两栏显示.自定义自己发布的网络分析服务来代替默认的路线服务. 需要准备的是: * Adobe Flash Builder 4.5.1及以上 * ArcGIS API for Flex 3.2及以上 步骤: 1 在FB中,创建一个新工程,添加API库和esri命名空间 2 添加底图代码,设置好空间参考和初始显

arcgis for flex api version3.7 教程:6.使用Geocoder进行地理查询

地理位置的快速查询 Geocoder组件提供了一种地理位置的快速查询,可以通过添加一个查询输入框来通过输入地址来查询显示地图上的地理位置.相对于平移和绽放地图,使用Geocoder能够更加快速到将地图显示移动到指定的位置区域.这个功能需要用到locator service(定位服务). 前提条件: *  Adobe Flash Builder 4.5.1及以上版本 *  使用到的ArcGIS API for Flex 是3.2及以上版本 1 在FB中新建工程,添加ArcGIS API 并引用es

arcgis for flex api version3.7 教程:9.地图范围extent的设置和使用

下面介绍的是设置地图范围的一系列方法,以及获取地图范围的方法. 如果在初始化地图时没有对地图范围进行设置,则将会使用默认的设置信息,它将会是所使用的地图文档中最后一次保存时的地图显示范围.如果使用多个图层,或服务,默认的地图范围将会是底图或第一个图层的范围信息. 要设置地图范围,就要用到extent属性或者是Extent类. 如果是使用extent属性,步骤如下:添加<esri:Extent>标签,并设置表示范围的坐标值以及空间参考的ID,代码如下: <esri:SpatialRefer

ArcGIS Flex API加载大量数据

1.关于大量数据的加载: 直接将所要展示的数据在服务器端发布成一个MapService,在客户端通过ArcGISDynamicMapServiceLayer来加载.这样的话客户端需要展示的仅仅是一张图片,没有任何压力.功能上,如果想查询的话可以使用Identify/Find/Query Task来达到目的. 参考:http://blog.newnaw.com/?p=633 2.分页查询参考: http://blog.163.com/[email protected]/blog/static/69

arcgis for flex全国地图天气预报的具体实现过程解析

系统架构是B/S,开发语言是flex,开发工具是myeclise或者flashbuild,通过调用百度提供的在线天气预报web api接口的方式来实现. 采用地图是ArcGIS全国地图,开发接口为arcgis api for flex,但是程序可以拓展api 接口,可以采用其他GIS api,地图数据也可以更换其他地图数据,拓展性比较好. 先谈谈主界面的布局,只是简单的设计了大概的布局,如下: 首先是两行,第一行是标题:第二行再分为两列,第一列是用来天气预报查询以及显示查询的结果,第二列用来显示

Google Map API Version3 :代码添加和删除marker标记

转自:http://blog.sina.com.cn/s/blog_4cdc44df0100u80h.html Google Map API Version3 教程:在地图 通过代添加和删除mark标记 lat = 23.14746; lng = 113.34175376; var myLatLng = new google.maps.LatLng(lat, lng); var myOptions = { zoom: 15, center: myLatLng, mapTypeId: google

ArcGIS For Flex学习之Mapping---Switching Basemaps

今天开始系统的学习ArcGIS For Flex,先从ESRI的例子学起 1 <?xml version="1.0" encoding="utf-8"?> 2 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 3 xmlns:s="library://ns.adobe.com/flex/spark" 4 xmlns:esri="http: