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

下面介绍的是设置地图范围的一系列方法,以及获取地图范围的方法。

如果在初始化地图时没有对地图范围进行设置,则将会使用默认的设置信息,它将会是所使用的地图文档中最后一次保存时的地图显示范围。如果使用多个图层,或服务,默认的地图范围将会是底图或第一个图层的范围信息。

要设置地图范围,就要用到extent属性或者是Extent类。

如果是使用extent属性,步骤如下:添加<esri:Extent>标签,并设置表示范围的坐标值以及空间参考的ID,代码如下:

<esri:SpatialReference id="wgs" wkid="4326"/>
<esri:Extent id="extentOfKansas" xmin="-103" ymin="36" xmax="-94" ymax="41"
      spatialReference="{wgs}"/>
<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>

如果是使用Extent类,与上面类似,大致的标签结构如下:

<esri:SpatialReference id="wgs" wkid="4326"/>
<esri:Map id="myMap">
    <esri:extent>
        <esri:Extent xmin="-103" ymin="36" xmax="-94" ymax="41" spatialReference="{wgs}"/>
    </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>

有些情况下,我们想设置的地图范围不是底图或第一个图层的,而是添加的其他图层或服务的坐标范围。则可以通过load属性来进行设置:load="myMap.extent = myKansasLayer.fullExtent"。load属性的功能是在创建地图时,执行引号内的代码。在这里是执行引号里面这段设置地图范围为指定图层范围的代码。参考代码如下:

<esri:Map id="myMap">
    <esri:ArcGISTiledMapServiceLayer
        url="http://server.arcgisonline.com/ArcGIS/rest/services/
             ESRI_StreetMap_World_2D/MapServer"/>
    <esri:ArcGISDynamicMapServiceLayer
        load="myMap.extent = myKansasLayer.fullExtent"
        id="myKansasLayer"
        url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/
             Petroleum/KGS_OilGasFields_Kansas/MapServer" />
</esri:Map>

对地图范围发生变化进行事件监听,使用ExtentEvent事件,每当用户平移或缩放地图时该事件就会被激活。可以通过添加MXML标签的方法来添加,也可以通过ActionScript代码的方式添加,示例如下:

MXML 示例:

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

as示例:

myMap.addEventListener
(ExtentEvent.EXTENT_CHANGE, extentChangeHandler);

时间: 2024-11-10 18:14:31

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

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 教程:5.使用Editor对地图进行编辑

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

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

南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(四)地图导航控件模块

config.xml文件的配置如下: <widget left="10" top="50" config="widgets/Navigation/NavigationWidget.xml" url="widgets/Navigation/NavigationWidget.swf" /> 源代码目录如下: 地图导航控件模块的源代码原理解析,详细的代码在下载的开源flexviewer自带的: 1.地图缩小 2.地图放大

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

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: