<fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import mx.collections.ArrayCollection; import mx.rpc.AsyncResponder; import mx.rpc.events.ResultEvent; import spark.components.TextArea; private function init():void { pointsXML.send(); } protected function pointsXML_resultHandler(event:ResultEvent):void { var gArr:Array = []; var myGraphics:Array = []; var x:XML = XML(event.result); var pntList:XMLList = x..entry; for (var i:int = 0; i < pntList.length(); i++){ var latlong:Array = pntList.point.split(" "); var attrib:Object = pntList.name; var myPoint:Geometry = new MapPoint(latlong[1], latlong[0], new SpatialReference(4326)); var coordGraphic:Graphic = new Graphic(myPoint); gArr.push(myPoint); myGraphics.push(coordGraphic); } var outSR:SpatialReference = new SpatialReference(3857); geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, myGraphics)); var textArea:TextArea = new TextArea(); textArea.height = 50; textArea.width = 100; textArea.text = attrib.toString(); map.infoWindow.content = textArea; } protected function projectCompleteHandler(result:Object, token:Object):void { var pRslts:Array = result as Array; for (var pg:int = 0; pg < pRslts.length; pg++) { var pGeom:Geometry = pRslts[pg]; token[pg].geometry = pGeom; token[pg].addEventListener(MouseEvent.CLICK, mClick); } graphicsLayer.graphicProvider = token; } private function mClick(event:MouseEvent):void { map.infoWindow.showInAutomationHierarchy; } ]]> </fx:Script>
Solved! Go to Solution.
<?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" creationComplete="init()"> <fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.AsyncResponder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import spark.components.TextArea; private function init():void { pointsXML.send(); } protected function pointsXML_resultHandler(event:ResultEvent):void { var gArr:Array = []; var myGraphics:Array = []; var x:XML = XML(event.result); var pntList:XMLList = x..entry; for (var i:int = 0; i < pntList.length(); i++){ var latlong:Array = pntList.point.split(" "); var attrib:Object = pntList.name; var myPoint:Geometry = new MapPoint(latlong[1], latlong[0], new SpatialReference(4326)); var coordGraphic:Graphic = new Graphic(myPoint,null,attrib); gArr.push(myPoint); myGraphics.push(coordGraphic); } var outSR:SpatialReference = new SpatialReference(3857); geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, myGraphics)); } protected function projectFault(event:mx.rpc.events.FaultEvent):void { Alert.show(event.fault.faultString); } protected function projectCompleteHandler(result:Object, token:Object):void { var pRslts:Array = result as Array; for (var pg:int = 0; pg < pRslts.length; pg++){ var pGeom:Geometry = pRslts[pg]; token[pg].geometry = pGeom; token[pg].addEventListener(MouseEvent.CLICK, mClick); } graphicsLayer.graphicProvider = token; } protected function mClick(event:MouseEvent):void { var gra:Graphic= event.target as Graphic; var textArea:TextArea = new TextArea(); textArea.height = 50; textArea.width = 100; textArea.text = gra.attributes[0].toString(); map.infoWindow.content = textArea; map.infoWindow.show(gra.geometry as MapPoint); } protected function pointsXML_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message); } ]]> </fx:Script> <fx:Declarations> <s:HTTPService id="pointsXML" url="xml/properties.xml" result="pointsXML_resultHandler(event)" resultFormat="xml" fault="pointsXML_faultHandler(event)"/> <esri:GeometryService id="geometryService" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> </fx:Declarations> <!--<s:navigationContent> <s:Button width="80" height="70" click="navigator.popView()" icon="assets/backbutton.png"/> </s:navigationContent>--> <esri:Map id="map"> <esri:extent> <esri:Extent xmin="-467799" ymin="5253018" xmax="2171419" ymax="6627661"/> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <esri:GraphicsLayer id="graphicsLayer"> <esri:symbol> <esri:SimpleMarkerSymbol alpha="0.9" color="0xFFFF00" size="12" style="square"> <esri:SimpleLineSymbol color="0xDD0000" width="2" alpha="1" style="solid"/> </esri:SimpleMarkerSymbol> </esri:symbol> </esri:GraphicsLayer> </esri:Map> </s:Application>
private function mClick(event:MouseEvent):void { var gra:Graphic= event.target as Graphic; map.infoWindow.show(gra.geometry as MapPoint); }
<?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" creationComplete="init()"> <fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.AsyncResponder; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import spark.components.TextArea; private function init():void { pointsXML.send(); } protected function pointsXML_resultHandler(event:ResultEvent):void { var gArr:Array = []; var myGraphics:Array = []; var x:XML = XML(event.result); var pntList:XMLList = x..entry; for (var i:int = 0; i < pntList.length(); i++){ var latlong:Array = pntList.point.split(" "); var attrib:Object = pntList.name; var myPoint:Geometry = new MapPoint(latlong[1], latlong[0], new SpatialReference(4326)); var coordGraphic:Graphic = new Graphic(myPoint,null,attrib); gArr.push(myPoint); myGraphics.push(coordGraphic); } var outSR:SpatialReference = new SpatialReference(3857); geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, myGraphics)); } protected function projectFault(event:mx.rpc.events.FaultEvent):void { Alert.show(event.fault.faultString); } protected function projectCompleteHandler(result:Object, token:Object):void { var pRslts:Array = result as Array; for (var pg:int = 0; pg < pRslts.length; pg++){ var pGeom:Geometry = pRslts[pg]; token[pg].geometry = pGeom; token[pg].addEventListener(MouseEvent.CLICK, mClick); } graphicsLayer.graphicProvider = token; } protected function mClick(event:MouseEvent):void { var gra:Graphic= event.target as Graphic; var textArea:TextArea = new TextArea(); textArea.height = 50; textArea.width = 100; textArea.text = gra.attributes[0].toString(); map.infoWindow.content = textArea; map.infoWindow.show(gra.geometry as MapPoint); } protected function pointsXML_faultHandler(event:FaultEvent):void { Alert.show(event.fault.message); } ]]> </fx:Script> <fx:Declarations> <s:HTTPService id="pointsXML" url="xml/properties.xml" result="pointsXML_resultHandler(event)" resultFormat="xml" fault="pointsXML_faultHandler(event)"/> <esri:GeometryService id="geometryService" url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> </fx:Declarations> <!--<s:navigationContent> <s:Button width="80" height="70" click="navigator.popView()" icon="assets/backbutton.png"/> </s:navigationContent>--> <esri:Map id="map"> <esri:extent> <esri:Extent xmin="-467799" ymin="5253018" xmax="2171419" ymax="6627661"/> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/> <esri:GraphicsLayer id="graphicsLayer"> <esri:symbol> <esri:SimpleMarkerSymbol alpha="0.9" color="0xFFFF00" size="12" style="square"> <esri:SimpleLineSymbol color="0xDD0000" width="2" alpha="1" style="solid"/> </esri:SimpleMarkerSymbol> </esri:symbol> </esri:GraphicsLayer> </esri:Map> </s:Application>