<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>
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.