ArcGIS API For Flex(设置地图空间范围)
2014-09-01 17:49
405 查看
引用地址:https://developers.arcgis.com/flex/guide/using-extent.htm
本教程描述几种方式设置地图的范围以及如何取得用于其他操作程度。
第一步:插入
和 coordinates坐标.
第二步:添加
插入
和 coordinates坐标.
添加
在某些情况下,你可能想要设置一个层的空间范围,而不是初始化层或底图,为此,在所需的层上设置地图的extent属性,在下面代码中我们使用到了2个层,第一个是底图(ArcGIS
Online world extent)、第二个是凯萨斯州的层layer (the state of Kansas)
设置凯萨斯州的extent,添加一个load属性,然后再在map上设置extent(范围)
load="myMap.extent
= myKansasLayer.fullExtent"
当创建地图时,这个load属性被加载, 然后在Kansas layer(凯萨斯州)层中设置 全局的extent . 下面的代码片段使用
extent
设置 initial extent代替 full extent,使用
MXML 示例:
ActionScript 示例:
本教程描述几种方式设置地图的范围以及如何取得用于其他操作程度。
Setting an extent
设置一个初始化的地图范围区别于默认。图1是默认,图2是设置后的,可以使用extent属性或Extent类使用 extent 属性
在Map中设置extent属性,参考下面代码片段第一步:插入
<esri:Extent>标记,指定ID
和 coordinates坐标.
第二步:添加
<esri:ArcGISDynamicMapServiceLayer>标记.
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags"> <fx:Declarations> <esri:SpatialReference id="wgs" wkid="4326"/> <esri:Extent id="extentOfKansas" spatialReference="{wgs}" xmax="-94" xmin="-103" ymax="41" ymin="36"/> </fx:Declarations> <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" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer"/> </esri:Map> </s:Application>另外一种方式,使用Extent类
添加 <esri:SpatialReference>标记,指定坐标点wkid 设置 ID.
插入
<esri:extent>标记,指定ID
和 coordinates坐标.
添加
<ArcGISTiledMapServiceLayer>标记.
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags"> <fx:Declarations> <esri:SpatialReference id="wgs" wkid="4326"/> </fx:Declarations> <esri:Map id="myMap"> <esri:extent> <esri:Extent spatialReference="{wgs}" xmax="-94" xmin="-103" ymax="41" ymin="36"/> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/> <esri:ArcGISDynamicMapServiceLayer id="myLayer" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer"/> </esri:Map> </s:Application>或者以下方式
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags"> <esri:Map id="myMap"> <esri:extent> <!-- 地图的当前视图对应的地理坐标范围 --> <esri:Extent xmax="-6815000" xmin="-14298000" ymax="7117000" ymin="2748000"> <esri:SpatialReference wkid="102100"/> </esri:Extent> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer"/> </esri:Map> </s:Application>
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
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags"> <esri:Map id="myMap"> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/> <esri:ArcGISDynamicMapServiceLayer id="myKansasLayer" load="myMap.extent = myKansasLayer.fullExtent" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer"/> </esri:Map> </s:Application>
设置 initial extent代替 full extent,使用
myKansasLayer.initialExtent
Getting the current extent
取得当前地图上的extent 使用 extent属性.Listening to extent changes
监听extent的变化,当用户在地图上每次拖动地图或缩放地图时,会触发一个 ExtentEvent 事件,你可以添加一个事件监听,使用MXML或ActionScript,用于通知每次extent的变化,参考下面的例子MXML 示例:
[code]<esri:Map id="myMap" extentChange="displayExtent()"> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" /> </esri:Map>
ActionScript 示例:
[code]myMap.addEventListener(ExtentEvent.EXTENT_CHANGE, extentChangeHandler);
相关文章推荐
- ArcGIS API For Flex(设置地图空间范围)
- arcgis for flex api version3.7 教程:9.地图范围extent的设置和使用
- ArcGIS api for javascript——用第二个服务的范围设置地图范围
- 设置和使用地图的范围—ArcGIS API for JavaScript
- ArcGIS api for javascript——设置自定义范围和空间参考
- ArcGIS API for Flex(四) 地图的当前范围和规模
- ArcGIS API For Flex(在应用程序中添加web地图)
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图map控件基本参数设置(三)
- arcgis api for flex 设置 TextSymbol 竖排字 道路标注
- ArcGIS.Server.9.3和ArcGIS API for JavaScript地图map控件基本参数设置(三)
- 自定义ArcGIS API for Flex 地图提示窗体
- ArcGIS API for Flex 调用天地图、e都市瓦片地图
- 自定义ArcGIS API for Flex 地图提示窗体
- Arcgis api for flex项目实例—开发篇(1):地图浏览
- 地图中的BI图表解决方案(ArcGIS API for Flex)
- arcgis api for Flex 设置InfoSymbol背景
- 使用ArcGIS Server for Flex API 开发包agslib加载天地图2.0版本经纬度地图
- ArcGIS API for flex遇到的问题解决(1)--地图服务url传值问题
- ArcGIS API for Flex 调用天地图、e都市瓦片地图
- 使用ArcGIS Server for Flex API 开发包agslib加载天地图2.0版球面墨卡托地图 .