一、Arcgis for Flex api方法介绍
a.AddLayer(layer:Layer, index:int = -1);向地图添加一个图层。
b.使用ActionScript地图上添加一层
var myGraphicsLayer:GraphicsLayer = new GraphicsLayer();
myMap.addLayer(myGraphicsLayer);
二. MAP属性介绍
1.scale 地图比例尺
2.extent 地图范围
3.infoWindow 地图的信息窗口
4.initialExtent 地图的初始程度
三、代码
1.ArcGis for Flex Api 简单加载地图
<?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:esri="http://www.esri.com/2008/ags" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <esri:Map id="myMap"> <esri:extent> <esri:Extent xmin="-14298000" ymin="2748000" xmax="-6815000" ymax="7117000"> <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>
2.通过配置xml文件方式。在实际开发中一般采用这种方法。
Map_Service.xml
<?xml version="1.0" encoding="UTF-8"?> <serives> <serive id="img_map_1" type="agtmp" clas="ArcGISTiledMapServiceLayer" name="电子地图" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer"> </serive> <scal> <sc data="80000000"></sc> </scal> </serives>
MAPTest.mxml
<?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:esri="http://www.esri.com/2008/ags" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="init()" > <fx:Script> <![CDATA[ import mx.events.FlexEvent; import mx.events.MoveEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; import com.esri.ags.layers.ArcGISImageServiceLayer; import com.esri.ags.layers.ArcGISTiledMapServiceLayer; import com.esri.ags.layers.Layer; [Bindable] private var _map:Map; [Bindable] public var mapType:String; [Bindable] public var proxyUrl:String; [Bindable] public var scaleValue:Number; public var layer:ArcGISTiledMapServiceLayer=new ArcGISTiledMapServiceLayer(); public var layer2:ArcGISTiledMapServiceLayer=new ArcGISTiledMapServiceLayer(); public var layer3:ArcGISTiledMapServiceLayer=new ArcGISTiledMapServiceLayer(); public var currentBaseMapId:String; public var configxml:XML; protected function init_loadMap(event:FlexEvent):void { var service:HTTPService=new HTTPService(); service.url="xml/Map_Service.xml"; service.resultFormat="e4x"; service.addEventListener(ResultEvent.RESULT,onResultHandler); service.send(); } public function onResultHandler(evt:ResultEvent):void { configxml=XML(evt.result); proxyUrl=configxml.serive.@url; mapType=configxml.serive.@clas; scaleValue=configxml.scal.sc.@data; addLayers(proxyUrl,mapType); } public function addLayers(url:String,maptype:String):void{ switch (maptype) { case "WMSMapServiceLayer":
layer.id=currentBaseMapId;
this.map.addLayer(Layer(layer),0);
break; case "ArcGISTiledMapServiceLayer": layer.url=url; layer.id=currentBaseMapId; this.map.addLayer(Layer(layer),0); break; case "ArcGISDynamicMapServiceLayer": layer3.url=url; layer3.id=currentBaseMapId; this.map.addLayer(Layer(layer3),0); break } } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <esri:Map initialize="init_loadMap(event)" scale="{scaleValue}" id="map" > </esri:Map> </s:Application>
导入swf文件地址放到项libs 文件夹下即可。下载地址:http://download.csdn.net/detail/allen_gang/5681675