Google Maps polyligne: Cliquez sur la section de polyligne et retour d'une ID?
J'ai une carte Google Maps V3 polyligne. Je peux détecter les événements click sur l'ensemble de la polyligne, mais je peux faire quelque chose de plus avancé, cliquez sur l'événement?
Ce que je voudrais faire est de détecter la section de la polyligne a été cliqué, et de la montrer à une alerte.
routePath = new google.maps.Polyline({
path: routeCoordinates,
strokeColor: "#CC33FF",
strokeWeight: 3
});
routePath.setMap(map);
google.maps.event.addListener(routePath, 'click', function() {
alert(routePath);
//TODO: display which section of the polyline has been clicked?
});
Personne ne sait comment faire cela dans Google Maps?
merci!
Vous devez vous connecter pour publier un commentaire.
Sur l'événement click, vous pouvez recevoir un LatLng de la coordonnée qui a été cliqué. Toutefois, ce ne sera probablement pas le point exact qui est de la création de la polyligne, vous devez trouver le point le plus proche. Vous pouvez utiliser le computeDistanceBetween dans le Google Maps de la bibliothèque ou vous pouvez utiliser le théorème de Pythagore comme il devrait vous donner une assez bonne précision dans ce cas.
Vous pouvez trouver plus d'informations sur computeDistanceBetween ici:
https://developers.google.com/maps/documentation/javascript/reference#spherical
Voici un exemple de code comment vous pourriez le faire avec le computeDistanceBetween.
J'ai couru dans la même, la question ici est de savoir comment j'ai traité avec lui:
lors de la configuration du gestionnaire de:
Ou si vous souhaitez accéder à un objet défini par la création d'une variable sur la polyligne:
ensuite, vous pouvez accéder à votre voiture à partir de l'événement:
Trouver le point le plus proche en fonction de la distance de l'analyse échoue dans beaucoup de cas où un chemin de traverse arrière sur ou à proximité d'elle-même.
Vous pouvez l'utiliser pour identifier les candidats, mais vous devez confirmer en comparant les la croix du produit et/ou produit scalaire des 2 lignes créées, si vous l'utilisez cliquez sur le point de split 2 polyligne consécutive points