Help! Can't show infoWindow

364
3
Jump to solution
03-14-2012 02:54 AM
sherlytobias
New Contributor
<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>


Can someone tell me how to do this the right way? Please
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus
Ann,

   There are some other issues I see in your code:

<?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>

View solution in original post

0 Kudos
3 Replies
RobertScheitlin__GISP
MVP Emeritus
Ann,

   See the Infowindow documentation here:

http://help.arcgis.com/en/webapi/flex/apiref/com/esri/ags/components/supportClasses/InfoWindow.html

The show function is what you need and all you supply is the map point you want to display the point at.

            private function mClick(event:MouseEvent):void
            {
                var gra:Graphic= event.target as Graphic;
                map.infoWindow.show(gra.geometry as MapPoint);
            }


Don't forget to click the Mark as answer check and to click the top arrow (promote) as shown below:
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Ann,

   There are some other issues I see in your code:

<?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>
0 Kudos
sherlytobias
New Contributor
Its working very well now. Thank you so much!!! You helped me big time.
0 Kudos