JSON Polyline Graphic

439
1
04-11-2010 03:04 PM
GlenJansma
New Contributor
Hello,
I am trying to use the JSON objects.  I have small program which creates a polyline graphic.  I seem to create the object correctly (by viewing the alerts in the code) but the result is no graphic on the map.  Also there is no error message.  I was using the list of coordinates method and it works, but I would like to use JSON if possible.

Here is a portion of the code:
//********************************************************
// start with array of coordinates (various lengths...)
// for each offset to x0,y0 and resize dx,dy


var myJSON = "jsnpolyline = {\"paths\":[[";                   // beginning of json string

ncoord = arrayofcoord.length;

for(j=0; j<ncoord; j+=2)
{
    ln0 = x0 + (arrayofcoord)*dx;                           // first in pair
    lt0 = y0 + (arrayofcoord[j+1])*dy;                        // second in pair
  if(j>0) myJSON = myJSON + ", ";                     //add comma between pairs --- after first pair
  myJSON = myJSON + "["+ln0+","+lt0+"]";         // add next pair to json string
}

myJSON = myJSON + "]],\"spatialReference\":{\"wkid\":4152}}";          // add this to end of jason string

alert(myJSON);  // for debugging (see below)

eval(myJSON);  

alert(jsnpolyline.paths); // for debugging(see below)

var polyline = new esri.geometry.Polyline(jsnpolyline);

polyline.addPath(polyline);
var graphic = new esri.Graphic(polyline, numsymbol);
numberLayer.add(graphic);

//***************************************************

the first alert above produces something similar to:
jsnpolyline = {"paths":[[[-117.946655,33.641689],[-117.94346,33.645121]]],"spatialReference":{"wkid":4152}}
(note this is a shortened sample ... the arrays have between 4 and 18 point pairs)

the second alert produces similar to (same note as above):
-117.946655,33.641689,-117.94346,33.645121

Thanks, Glen
0 Kudos
1 Reply
PhilipSitton
New Contributor
If you can successfully use the coordinate method, maybe you can use that to figure out why your json isn't working.

I would build a polyline using coordinates, then use the toJson() method to generate a json string, then use that string to create a new polyline, and then see if that polyline is usable. If that works, just check to see what might be different between the generated json and the json you were building.
0 Kudos