<esri:Map id="mainMap" width="100%" height="100%" units="{Units.METERS}" visible="true" initialize"initMap()"> <esri:extent > <esri:Extent id="startExtent" xmin="-10944809" ymin="4276422" xmax="-9568555" ymax="5020001"> <esri:SpatialReference wkid="102100"/> </esri:Extent> </esri:extent> <esri:ArcGISTiledMapServiceLayer id="medIncomeLayer" alpha="0.7" visible="true" url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Household_Income/MapServer" /> <esri:ArcGISTiledMapServiceLayer id="socialVunLayer" alpha="0.7" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Social_Vulnerability_Index/MapServer" /> <esri:ArcGISTiledMapServiceLayer id="unemployLayer" alpha="0.7" visible="false" url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Unemployment_Rate/MapServer" </esri:Map>
mx:ComboBox id="layerPickList1" change="changeMap(mainMap)" paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10" dataProvider="{comboList}" x="67"/>
public function changeMap (myMap:Map): void { var mapName:String = myMap.id; var chosenLayer:String = layerPickList1.text; var listPosition:Number = comboList.indexOf(chosenLayer); var displayLayer:Object = LayerList[comboList.indexOf(chosenLayer)]; for each (var mapLayer:Layer in LayerArray) { trace (mapLayer.id); if (mapLayer.id == displayLayer) { mapLayer.visible=true; } else { mapLayer.visible=false; } } }
public function initMap () : void { LayerArray.addItem(medIncomeLayer); LayerArray.addItem(socialVunLayer); LayerArray.addItem(unemployLayer); }
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:esri="http://www.esri.com/2008/ags" xmlns:components="components.*" layout="horizontal" pageTitle="" backgroundColor="#F8EEC5" initialize="initMap()"> <mx:Script> <![CDATA[ import com.esri.ags.SpatialReference; import com.esri.ags.Map; import mx.collections.ArrayCollection; import com.esri.ags.layers.Layer; import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; import com.esri.ags.layers.ArcGISTiledMapServiceLayer; import com.esri.ags.geometry.Extent; import com.esri.ags.events.ExtentEvent; import com.esri.ags.geometry.Extent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.utils.WebMercatorUtil; import com.esri.ags.Units; import mx.containers.Canvas; import mx.controls.Alert; import mx.utils.ObjectUtil; import flash.utils.ByteArray; import mx.managers.FocusManager; public var comboList:Array = ["Median Income","View Social Vunerability","View Unemployment"]; public var LayerList:Array = ["medIncomeLayer","socialVunLayer","unemployLayer"]; // public var medIncomeLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer; public var socialVunLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer; public var unemployLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer; [Bindable] public var LayerArray:ArrayCollection = new ArrayCollection; public var canvasCounter:Number = 1; public var mapArray:ArrayCollection = new ArrayCollection; public var map2:Map = new Map (); public var map3:Map = new Map (); public function initMap() : void { socialVunLayer.id = "socialVunLayer"; socialVunLayer.alpha=0.7; socialVunLayer.visible=true; socialVunLayer.url= "http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Social_Vulnerability_Index/MapServer"; unemployLayer.id="unemployLayer"; unemployLayer.alpha=0.7; unemployLayer.visible=true; unemployLayer.url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Unemployment_Rate/MapServer"; } public function changeMap(): void { var chosenLayer:String = layerPickList1.text; if (canvasCounter < 3) { canvasCounter = canvasCounter + 1; var myMap:Map = new Map (); var eventName:String = "onExtentChange"+canvasCounter; myMap.id="map"+ canvasCounter; switch (eventName) { case "onExtentChange2": myMap = map2; myMap.id="map2"; myMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2); break; case "onExtentChange3": myMap = map3; myMap.id="map3"; myMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange); break; } var beginExtent:Extent = mainMap.extent; var spatRef:SpatialReference = mainMap.extent.spatialReference; myMap.extent = beginExtent; myMap.extent.spatialReference = mainMap.extent.spatialReference; switch (chosenLayer) { case "View Social Vunerability": myMap.addLayer(socialVunLayer); break; case "View Unemployment": myMap.addLayer(unemployLayer); break; } mapBox.addChild(myMap); myMap.extent = mainMap.extent; myMap.extent.spatialReference = mainMap.extent.spatialReference; myMap.scale = mainMap.scale; }else { Alert.show ("Maximum number of maps reached") ; } mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange); } public function onExtentOff () : void { trace ("extentEvent turned off"); } public function onExtentChange(event:ExtentEvent):void { map2.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); map3.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); map2.extent = mainMap.extent; map3.extent = mainMap.extent; map2.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2); map3.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange3); } public function onExtentChange2(event:ExtentEvent):void { mainMap.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); map3.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); mainMap.extent = map2.extent; map3.extent = map2.extent; mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange); map3.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange3); } public function onExtentChange3(event:ExtentEvent):void { mainMap.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); map2.removeEventListener(ExtentEvent.EXTENT_CHANGE,onExtentOff); mainMap.extent = map3.extent; map2.extent = map3.extent; mainMap.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange); map2.addEventListener(ExtentEvent.EXTENT_CHANGE, onExtentChange2); } ]]> </mx:Script> <mx:VBox height="100%" width="100%"> <mx:ComboBox id="layerPickList1" change="changeMap()" paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10" dataProvider="{comboList}" x="67"/> <mx:HBox visible="false" includeInLayout="false"> <mx:Label text="Current map extent:" fontWeight="bold"/> <mx:Label text="xmin: {mainMap.extent.xmin.toFixed(3)}"/> <mx:Label text="ymin: {mainMap.extent.ymin.toFixed(3)}"/> <mx:Label text="xmax: {mainMap.extent.xmax.toFixed(3)}"/> <mx:Label text="ymax: {mainMap.extent.ymax.toFixed(3)}"/> <mx:Label text="Current map scale:" fontWeight="bold"/> <mx:Label text="1:{mainMap.scale.toFixed(0)}"/> </mx:HBox><mx:HBox height="100%" width="100%" id="mapBox"> <esri:Map id="mainMap" units="{Units.METERS}" visible="true" > <esri:extent > <esri:Extent id="startExtent" xmin="-10944809" ymin="4276422" xmax="-9568555" ymax="5020001"> </esri:Extent> </esri:extent> <esri:ArcGISTiledMapServiceLayer id="medIncomeLayer" alpha="0.7" visible="true" url="http://server.arcgisonline.com/ArcGIS/rest/services/Demographics/USA_Median_Household_Income/MapServer" /> </esri:Map> </mx:HBox> </mx:VBox></mx:Application>
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.