Error #1010: A term is undefined and has no properties.

3303
11
Jump to solution
02-24-2012 01:30 AM
sherlytobias
New Contributor
private function init():void    {     graphicsLayer = new GraphicsLayer;     map.addLayer(graphicsLayer);     srv.send();    }        private function resultHandler(event:ResultEvent):void    {    myXML = event.result.myXML.entry;           var gArr:Array = [];    var graphics:Array = [];    for each (myObject in data) {     latlong = Number(myObject.point.toString());                 myPoint = new MapPoint(latlong);          var uGraphic:Graphic = new Graphic (myPoint);     gArr.push(myPoint);     graphics.push(uGraphic);    }     var outSR:SpatialReference = new SpatialReference(3857);    geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, graphics));    }        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;     }     graphicsLayer.graphicProvider = token;    }    


please help.
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus
Sherly,

   Here it is tested. You are going to have to learn a lot more about flex as copy and pasting code you find will somethimes work but you have to have some understanding of what it is doing.

<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009"      xmlns:s="library://ns.adobe.com/flex/spark"     xmlns:esri="http://www.esri.com/2008/ags"      title="Map" 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.rpc.AsyncResponder;             import mx.rpc.events.ResultEvent;                          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 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));                                 }                                  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;                 }                                  graphicsLayer.graphicProvider = token;                              }                      ]]>     </fx:Script>     <fx:Declarations>         <s:HTTPService id="pointsXML" resultFormat="text"                        url="xml/properties.xml" result="pointsXML_resultHandler(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:View> 


Now you need to make this as answered.

Don't forget to click the Mark as answer check and to click the top arrow (promote) as shown below:

View solution in original post

0 Kudos
11 Replies
RobertScheitlin__GISP
MVP Emeritus
Sherly,

   That error comes when you are missing an import in your code, and because you have not attached all of the code it is impossible to say which import you are missing.
0 Kudos
sherlytobias
New Contributor
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" title="map2" creationComplete="init()" xmlns:esri="http://www.esri.com/2008/ags">
 <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 com.esri.ags.layers.GraphicsLayer;
   
   import mx.collections.ArrayCollection;
   import mx.rpc.AsyncResponder;
   import mx.rpc.events.ResultEvent;
      [Bindable]
   private var myXML:ArrayCollection;
   private var myObject:Object;
   private var latlong:Number;
   private var myPoint:Geometry;

   
   private function init():void
   {
    graphicsLayer = new GraphicsLayer;
    map.addLayer(graphicsLayer);
    srv.send();
   }
   
   private function resultHandler(event:ResultEvent):void
   {
   myXML = event.result.myXML.entry;
      
   var gArr:Array = [];
   var graphics:Array = [];
   for each (myObject in data) {
    latlong = Number(myObject.point.toString());   
    myPoint = new MapPoint(latlong);
    
    var uGraphic:Graphic = new Graphic (myPoint);
    gArr.push(myPoint);
    graphics.push(uGraphic);
   }

   var outSR:SpatialReference = new SpatialReference(3857);
   geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, graphics));
   }
   
   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;
    }
    graphicsLayer.graphicProvider = token;
   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
 <s:HTTPService id="srv" url="xml/properties.xml" result="resultHandler(event)"/>
 <esri:GeometryService id="geometryService" 
        url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/>
 </fx:Declarations>
 
 <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:symbol>
  </esri:GraphicsLayer>
 </esri:Map>
</s:View>
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
sherly,

   Which Adobe Flex SDK are you using and What ESRI Flex API?
0 Kudos
sherlytobias
New Contributor
I am using Flex SDK 4.5.1 and  ArcGIS API for Flex 2.5. Sir, can you tell me what am I doing wrong? Thanks in advance.
0 Kudos
sherlytobias
New Contributor
The error is gone now but i still can't project my points to the map. Please Help.
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" title="map2" creationComplete="init()" xmlns:esri="http://www.esri.com/2008/ags">
 
 <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 com.esri.ags.layers.GraphicsLayer;
   
   import mx.collections.ArrayCollection;
   import mx.rpc.AsyncResponder;
   import mx.rpc.events.ResultEvent;
   [Bindable]
   private var myXML:ArrayCollection;
   private var myObject:Object;
   private var latlong:Number;
   private var myPoint:Geometry;
   
   private function init():void
   {
    graphicsLayer = new GraphicsLayer;
    map.addLayer(graphicsLayer);
    srv.send();
   }
   
   private function resultHandler(event:ResultEvent):void
   {
    var gArr:Array = [];
    var graphics:Array = [];
    for each (var node:XML in event.result.entry.point)
    {
     latlong = Number(node.point.toString());
     myPoint = new MapPoint(latlong);
     
     var uGraphic:Graphic = new Graphic(myPoint);
     gArr.push(myPoint);
     graphics.push(uGraphic);
    }
    
    var outSR:SpatialReference = new SpatialReference(3857);
    geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, graphics));
   }
   
   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;
    }
    
    graphicsLayer.graphicProvider = token;
   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
 <s:HTTPService id="srv" url="xml/properties.xml" result="resultHandler(event)" resultFormat="e4x"/>
 <esri:GeometryService id="geometryService" 
        url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/>
 </fx:Declarations>
 
 <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:symbol>
  </esri:GraphicsLayer>
 </esri:Map>
</s:View>


Here's what my xml looks like:

<feed>
<entry>
<point>46.47506 7.293239</point> 
</entry>

<entry>
  <point>46.424827 7.322059</point>
</entry>
.........

</feed>
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Sherly,

   A couple of points.

  1. A geometry is not going to project if it never knows what spatial reference it is in to begin with (which is your case)
    myPoint = new MapPoint(latlong);

  2. The MapPoint constructor is expecting a minimum of two properties x and y normally it would look like
    myPoint = new MapPoint(xCoord, Ycoord);
    You are trying to feed it one Number and no Spatial Reference.

Try this if your points are in WGS 1984:
var latlong:Array = node.point.toString().split(" ");
                myPoint = new MapPoint(latlong[0],latlong[1], new SpatialReference(4326));


Don't forget to click the Mark as answer check and to click the top arrow (promote) as shown below:
0 Kudos
sherlytobias
New Contributor
I'm still getting an error. Error #1034: Type Coercion failed: cannot convert mx.utils::ObjectProxy to XML  Please help. 😞

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" title="map2" creationComplete="init()" xmlns:esri="http://www.esri.com/2008/ags">
 
 <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;
   
   [Bindable]
   private var myGraphics:Array;
 
   private function init():void
   {
    pointsXML.send();
   }
   protected function pointsXML_resultHandler(event:ResultEvent):void
   {
    var gArr:Array = [];
    for each (var node:XML in event.result.feed.entry);
    {
     var latlong:Array = node.point.toString().split(" ");
     var myPoint:Geometry = new MapPoint(latlong[0], latlong[1], new SpatialReference(4326));
     
     var coordGraphic:Graphic = new Graphic(myPoint);
     
     gArr.push(myPoint);
     myGraphics.push(coordGraphic);
    }
     var outSR:SpatialReference = new SpatialReference(4326);
     geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, myGraphics));     
   }  
   
   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;
    }
    
    graphicsLayer.graphicProvider = token;

   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
  <s:HTTPService id="pointsXML"
        url="xml/properties.xml" result="pointsXML_resultHandler(event)"/>
  <esri:GeometryService id="geometryService" 
         url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/>
 </fx:Declarations>
 
 <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:symbol>
  </esri:GraphicsLayer>
 </esri:Map>

</s:View>



and the error comes from this line of code:
for each (var node:XML in event.result.feed.entry);
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Sherly,

  Try this:

var x:XML = XML(event.result);
for each (var node:XML in x);
0 Kudos
sherlytobias
New Contributor
The error is gone now but the points are still not projected. I can't think of anything to do now. It seems like my codes are correct but nothing happens. Please help. 😞
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" title="Map" creationComplete="init()" xmlns:esri="http://www.esri.com/2008/ags">
 
 <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;
   

 
   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.feed.entry);
    for each (var node:XML in x);
    {
     var latlong:Array = node.point.toString().split(" ");
     var myPoint:Geometry = new MapPoint(latlong[0], latlong[1], new SpatialReference(4326));
     
     var coordGraphic:Graphic = new Graphic(myPoint);
     
     gArr.push(myPoint);
     myGraphics.push(coordGraphic);
    }
     var outSR:SpatialReference = new SpatialReference(4326);
     geometryService.project(gArr, outSR, new AsyncResponder(projectCompleteHandler, null, myGraphics));     
   }  
   
   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;
    }
    
    graphicsLayer.graphicProvider = token;

   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
  <s:HTTPService id="pointsXML"
        url="xml/properties.xml" result="pointsXML_resultHandler(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:View>
0 Kudos