地图概述:
arcgis for flex api提供了大量的方法来实现地图操作和交互。首先,地图(map)支持添加各种类型的图层或服务。图层数据来源可以是arcgis server、Bing maps、graphics layers等。此外还有可以使用网络公开的其他服务像arcgis.com或自建的。网络地图服务有相似的一面,都通过一定的方法支持各种类型的图层 ,任务和数据(数据可以扩展,例如可以是.csv和.gpx文件作为一个组合)。下面我们将对此做详细讨论。
创建地图并设置显示范围和空间参考:
map组件包含一个或多个图层,是图层叠加显示的容器。创建地图是一个基本步骤。开发人员可以通过编码创建一个地图并添加底图和操作图层。
地图范围:
地图创建完成后,可以设置其显示范围和空间参考。地图的显示范围通常是取决于所提供的地图服务的地图范围。地图服务的显示范围对于设置应用中地图的初始显示范围(initial extent)有很重要的依据。默认情况下,地图的初始显示范围取决于地图中一系列图层的第一个图层的信息。如果想改变默认显示的初始范围,就需要我们通过代码来自定义了。
... <fx:Declarations> <esri:Extent id="initialExtent" xmin="-17731" ymin="6710077" xmax="-12495" ymax="6712279"> </esri:Extent> </fx:Declarations> <esri:Map extent="{initialExtent}"> </esri:Map>
空间参考(special reference):
每一个地图服务都有一个空间参考。空间参考可以是非投影参考系(如地理空间坐标系)或者是投影参考(如UTM,墨卡托).坐标系统的各类很多,一个最常用 的坐标系统就是墨卡托(Web Mercator),必应地图,谷歌地图 和esri online都是用的这个坐标系统。每一个坐标系统都对应一个WKID。应用中地图默认的空间参考也会采用第一个图层 的空间参考信息。如果想改变可以通过代码进行设置。
... <fx:Declarations> <esri:Extent id="initialExtent" xmin="-17731" ymin="6710077" xmax="-12495" ymax="6712279"> <esri:SpatialReference wkid="102100"/> </esri:Extent> </fx:Declarations> <esri:Map extent="{initialExtent}"> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> </esri:Map> ...
地图的缩放等级和显示中心:
与设置地图的显示范围类似,我们也可能设置地图显示到指定的缩放等级并且中心显示到指定的坐标点。地图等级指的是地图详细的等级(LOD)编号的ID。只有地图本身有LODs才会有效。例如,这个服务http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer,有20个LODs。可以将服务在浏览器中打开查看,在tile info中对LODs有详细的描叙信息。
<esri:Map level="15" wrapAround180="true"> <esri:center> <esri:WebMercatorMapPoint lon="-0.13" lat="51.51"/> </esri:center> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> </esri:Map>