加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ArcGIS API For Flex(设置地图空间范围)

发布时间:2020-12-15 03:37:30 所属栏目:百科 来源:网络整理
导读:? ArcGIS API For Flex(设置地图空间范围) 分类:?Arcgis Api For Flex?ArcGIS 2014-09-01 17:49 ? 23人阅读 ? 评论(0) ? 收藏 ? 举报 flex esri 目录(?) [+] 引用地址:https://developers.arcgis.com/flex/guide/using-extent.htm? 本教程描述几种方式设
?

ArcGIS API For Flex(设置地图空间范围)

分类:?Arcgis Api For Flex?ArcGIS ? 23人阅读? 评论(0)? 收藏? 举报
flex esri

目录(?)[+]

引用地址:https://developers.arcgis.com/flex/guide/using-extent.htm?

本教程描述几种方式设置地图的范围以及如何取得用于其他操作程度。

Setting an extent

设置一个初始化的地图范围区别于默认。图1是默认,图2是设置后的,可以使用extent属性或Extent类


使用 extent 属性

在Map中设置extent属性,参考下面代码片段
第一步:插入? <esri:Extent> ?标记,指定ID 和 coordinates坐标.
? 第二步:添加 <esri:ArcGISDynamicMapServiceLayer>标记 .

[html]? view plain copy
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <s:Application?xmlns:fx="http://ns.adobe.com/mxml/2009"?xmlns:s="library://ns.adobe.com/flex/spark"??
  3. ???????????????xmlns:mx="library://ns.adobe.com/flex/mx"?xmlns:esri="http://www.esri.com/2008/ags">??
  4. ??????
  5. ????fx:Declarations ????????esri:SpatialReference?id="wgs"?wkid="4326"/>??
  6. ????????esri:Extent?id="extentOfKansas"?spatialReference="{wgs}"?xmax="-94"?xmin="-103"?ymax="41"?ymin="36"/>??
  7. ????</>??
  8. ??
  9. esri:Map?id="myMap"?extent="{extentOfKansas}"esri:ArcGISTiledMapServiceLayer?url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"esri:ArcGISDynamicMapServiceLayer?id="myLayer"??
  10. ????????????????????url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer"esri:Maps:Application>??
另外一种方式,使用Extent类

添加 <esri:SpatialReference> ?标记,指定坐标点wkid 设置 ID.

插入?<esri:extent>??标记,指定ID 和 coordinates坐标.

添加?<ArcGISTiledMapServiceLayer>?标记.?

copy
    s:Application?xmlns:fx="http://ns.adobe.com/mxml/2009"??
  1. ???????????????xmlns:s="library://ns.adobe.com/flex/spark"??
  2. ???????????????xmlns:mx="library://ns.adobe.com/flex/mx"??
  3. ???????????????xmlns:esri="http://www.esri.com/2008/ags"esri:Map?id="myMap"esri:extent ????????????esri:Extent?spatialReference="{wgs}"?xmax="-94"?xmin="-103"?ymax="41"?ymin="36">??
或者以下方式

copy

    ????????????<!--?地图的当前视图对应的地理坐标范围?-->??
  1. ????????????esri:Extent?xmax="-6815000"?xmin="-14298000"?ymax="7117000"?ymin="2748000" ????????????????esri:SpatialReference?wkid="102100"esri:Extent ??????????
  2. esri:ArcGISTiledMapServiceLayer?url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer" ??????
  3. >??

Setting an extent when using multiple services

当多个服务使用同一个范围时

在某些情况下,你可能想要设置一个层的空间范围,而不是初始化层或底图,为此,在所需的层上设置地图的extent属性,在下面代码中我们使用到了2个层,第一个是底图(ArcGIS Online world extent)、第二个是凯萨斯州的层layer (the state of Kansas)

设置凯萨斯州的extent,添加一个load属性,然后再在map上设置extent(范围)

load="myMap.extent = myKansasLayer.fullExtent"

当创建地图时,这个load属性被加载,然后在Kansas layer(凯萨斯州)层中设置 全局的extent . 下面的代码片段使用?fullExtent来设置map extent

copy
    esri:ArcGISDynamicMapServiceLayer?id="myKansasLayer"?load="myMap.extent?=?myKansasLayer.fullExtent"??
  1. ???????????????????????????????????????????url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer">??


设置 initial extent代替?full extent,使用?myKansasLayer.initialExtent

Getting the current extent

取得当前地图上的extent 使用?extent?属性.

Listening to extent changes

监听extent的变化,当用户在地图上每次拖动地图或缩放地图时,会触发一个? ExtentEvent ?事件,你可以添加一个事件监听,使用MXML或ActionScript,用于通知每次extent的变化,参考下面的例子

  • MXML 示例:

    <esri:Map id="myMap" extentChange="displayExtent()">
      <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" />
    </esri:Map>
  • ActionScript 示例:

    myMap.addEventListener(ExtentEvent.EXTENT_CHANGE,extentChangeHandler);

http://blog.csdn.net/xiaokui_wingfly/article/details/38982213

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读