2013-05-19 3 views
-1

Je référence certains emplacements sur Google Maps (en chargeant des données JSON en utilisant AJAX), puis je stocke ces points dans un tableau, puis je lierai certains marqueurs entre eux et stockerai les polylignes dans un tableau. bien. Maintenant, j'essaie de filtrer certains marqueurs (en fonction de leur nom), je récupère le marqueur (ou le point) correspondant de la liste précédente, et j'effectue une boucle sur toutes les polylignes pour obtenir celles qui ont ce dernier point comme début ou fin. Le problème est que je reçois de la polyligne seulement les coordonnées du début et de la fin en utilisant cette fonction polyline.getPath().getAt(indiceLoop);, et j'ai besoin de comparer cela à la coordonnée du point.Donner un point à un point

Alors, y at-il un moyen d'obtenir des coordonnées LatLng étant donné un point déjà créé?

Merci beaucoup!

+1

Vous voulez dire obtenir les coordonnées d'un marqueur donné une référence à ce ([google.maps.Marker.getPosition] (https://developers.google.com/maps/documentation/javascript/référence # Marqueur))? Comment le "point déjà créé" est-il sauvegardé? – geocodezip

+0

les points sont sauvegardés dans le tableau pendant que je crée les marqueurs et les insère dans la carte (à chaque boucle) je vais essayer votre suggestion et être de retour dans une minute :) – Anas

+0

effectivement la fonction: polyline.getPath() .getAt (indiceLoop); retourne quelque chose comme ça (5.60518980026245, -0.16678600013256073) alors que marker.getPosition() retourne un objet !! comment puis-je vérifier si le point représente le début ou la fin de la polyligne étant donné cela ?? – Anas

Répondre

1

Supposons un google.maps.Marker ("marqueur") et un google.maps.Polyline ("polyline"). Pas testé.

if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(0)) < 0.1) { 
    // marker is at start of polyline 
    alert("marker at start"); 
} else if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(polyline.getPath().getLength()-1)) < 0.1) { 
    // marker is at end of polyline 
    alert("marker at end"); 
} 
+0

J'ai voté pour votre réponse et je l'ai accepté parce que ce dont j'avais besoin initialement était d'obtenir les coordonnées d'un point, et vous avez suggéré la fonction getPosition() – Anas

0

J'ai fini à l'aide marker.getPosition(). Equals (line.getpath(). GetAt()) et la même chose pour la fin de la ligne et il a bien fonctionné !!

Merci pour votre proposition :)