2013-01-19 1 views
3

Je suis nouveau ici, et j'utilise l'API api ArcGIS depuis environ 2 semaines maintenant.Obtenez les coordonnées d'une polyligne dessinée à la main par l'utilisateur. (API ArcGIS pour JavaScript)

J'ai suivi cet exemple:

http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/graphics_add

Et j'ai pu dessiner une polyligne main libre sur la carte. Maintenant, j'ai besoin de calculer les coordonnées de chaque point sur cette polyligne. J'ai essayé de le faire pendant environ 5 jours maintenant et je ne peux pas comprendre comment le faire. J'apprécierais que l'un de vous puisse m'expliquer comment le faire en détail (puisque je n'ai pas trop d'expérience avec ça).

Merci à l'avance,

Diego.

+0

404. Vouliez-vous créer un lien vers http://help.arcgis.com/fr/webapi/javascript/arcgis/ jssamples/# sample/graphics_add? –

+0

Oui! Désolé pour ça. –

Répondre

2

Vous devez inspecter l'objet geometry que vous obtenez de l'événement onDrawEnd - cet événement est déjà accroché dans l'exemple:

dojo.connect(tb, "onDrawEnd", addGraphic);

mais tout ce qu'il fait est d'ajouter la ligne à la carte avec un symbole de base. Le premier piège est que l'objet géométrie ne sera pas réellement de type geometry - c'est une classe de base abstraite qui n'existe pas vraiment. Le type dépend de l'outil que vous utilisiez pour dessiner la forme - dans votre cas, il semble que ce soit de type Polyline.

Cet objet Polyline a la propriété paths, qui est un tableau imbriqué de chemins (lignes), chacun contenant un tableau de points. Donc, si vous vouliez obtenir tous les points de tous les chemins dans un objet Polyligne:

function addGraphic(geo) { 
    //For each path... 
    for (var path = 0; path < geo.paths.length; path ++) { 
     //For each point in the path... 
     for (var pt = 0; pt < geo.paths[path].length; pt++) { 
      //Do something with each point in here... 
      //X coordinate: geo.paths[path][pt][0] 
      //Y coordinate: geo.paths[path][pt][1] 
     } 
    } 
} 

Vous aurez probablement envie de faire plus de vérifications sur des choses comme si vous avez réellement une polyligne, ou d'un autre objet hérite de geometry, car la propriété qui contient les coordonnées réelles varie entre Polyligne, Polygone, Point, etc.

+0

Merci beaucoup, ça a parfaitement fonctionné! –

+0

Pas de soucis. Si vous cliquez sur la coche à côté de la réponse, tout le monde reçoit un chaton gratuit. :) – Juffy

+0

Dans quel format sont les coordonnées, les unités d'écran ou les unités de carte? –

Questions connexes