<?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:mx="library://ns.adobe.com/flex/mx" xmlns:esri="http://www.esri.com/2008/ags" xmlns:container="com.esri.ags.script.*" initialize="init()" >
//the following two functions import the bookmarks.xml file private var xmlParameters:XML; public var xmlProjectParameters:XMLList; private function init():void { var xmlLoader:URLLoader = new URLLoader(); xmlLoader.load(new URLRequest("bookmarks.xml")); xmlLoader.addEventListener(Event.COMPLETE,init_onComplete); } private function init_onComplete(event:Event):void { var extentArray:ArrayCollection = new ArrayCollection; try { var loader:URLLoader = URLLoader(event.target) xmlParameters = new XML(loader.data) xmlProjectParameters = xmlParameters.communities.(@id=="communities") if (!(xmlParameters.extents == undefined)) { dropdown.visible = true; for (var i:int = 0; i < xmlProjectParameters.extents.extent.length(); i++) { extentArray.addItem({label:xmlProjectParameters.extents.extent.@name.toString(), xmin: xmlProjectParameters.extents.extent.@xmin.toString(), ymin: xmlProjectParameters.extents.extent.@ymin.toString(), xmax: xmlProjectParameters.extents.extent.@xmax.toString(), ymax: xmlProjectParameters.extents.extent.@ymax.toString()}); } dropdown.dataProvider = extentArray; } } catch(e:Error) { Alert.show("Error: " + e.message); return; } } //Zoom to your community tool public function change():void { var extent:Extent = new Extent(Number(dropdown.selectedItem.xmin), Number(dropdown.selectedItem.ymin), Number(dropdown.selectedItem.xmax), Number(dropdown.selectedItem.ymax)) myMap.extent = extent; }
<bookmarks> <communities id="communities"> <extents> <extent name="Community #1" xmin="-13181026" ymin="4010315" xmax="-13164974" ymax="4017443"/> </extents> </communities> </bookmarks>
private function init_onComplete(event:Event):void { var extentArray:ArrayCollection = new ArrayCollection; var loader:URLLoader = URLLoader(event.target) xmlParameters = new XML(loader.data) xmlProjectParameters = xmlParameters.communities.(@id=="communities") for (var i:int = 0; i < xmlProjectParameters.extents.extent.length(); i++) { extentArray.addItem({label:xmlProjectParameters.extents.extent.@name.toString(), xmin: xmlProjectParameters.extents.extent.@xmin.toString(), ymin: xmlProjectParameters.extents.extent.@ymin.toString(), xmax: xmlProjectParameters.extents.extent.@xmax.toString(), ymax: xmlProjectParameters.extents.extent.@ymax.toString()}); } dropdown.dataProvider = extentArray; }
Add the features from the last choosen to an arraylist or arraycollection variable, then when u wanna go back u will pass those values to the zoom extent.
Hey Jason,
Do you have the updated code for this drop down? My combobox will still not populate using the code above.