Je tracer un itinéraire entre deux points et je dois vérifier si l'itinéraire passe par un emplacement prédéfini. Dans l'API, chaque GStep a un point de départ et un point d'arrivée, mais le chemin n'a pas besoin d'être rectiligne. Compte tenu d'un point Lat/Long, existe-t-il un moyen de vérifier s'il se croise avec un itinéraire?Comment vérifier si un point Latitude/Longitude est sur le GRoute dans l'API Google Maps?
Répondre
Vous devriez être en mesure d'obtenir les sommets individuels de la polyligne générée par GDirections
très facilement. Vous devez d'abord vous assurer de passer l'option getPolyline: true
lorsque vous appelez le GDirections.load()
si vous ne joignez pas le GDirections
à la carte. Ensuite, vous pouvez simplement parcourir chaque sommet de la polyligne, puis vous devriez probablement vérifier si votre point est dans un certain seuil de distance de votre emplacement prédéfini.
Prenons l'exemple suivant:
var map = new GMap2(document.getElementById("map"));
var directions = new GDirections(map);
// Your predefined point
var pt = new GLatLng(51.470, -0.453);
directions.load('from: London, UK to: Glasgow, UK', { getPolyline: true });
GEvent.addListener(directions, "load", function() {
for (var i = 0; i < directions.getPolyline().getVertexCount(); i++) {
if (directions.getPolyline().getVertex(i).distanceFrom(pt) < 100) {
// Your predefined point is within 100 meters of the route
}
}
});
Vous pourriez sans doute améliorer cette méthode en sautant quelques étapes qui sont certainement trop loin de votre point de test. Vous pouvez obtenir l'index polyligne de chaque étape de la route avec la méthode getPolylineIndex()
. Cela peut vous aider à restreindre votre boucle for à un ensemble de sommets plus étroit.
Pour en savoir plus et référence:
- 1. Vérifiez si oui ou non un point est dans un polygone (API Google Maps)
- 2. Déterminer si un marqueur est visible dans Google Maps
- 3. Comment supprimer un marqueur sur Google Maps?
- 4. comment vérifier si un point tombe dans un MKRect
- 5. Impossible d'obtenir le point dans l'appel de l'API Google Maps
- 6. Comment afficher un message dans Google Maps?
- 7. Comment vérifier si un élément jQuery est dans le DOM?
- 8. Comment vérifier si un point (int - Coordonnées) est dans l'hypoténuse d'un triangle
- 9. Marqueurs dans google maps
- 10. Comment puis-je vérifier qu'un point est dans un triangle?
- 11. Comment vérifier si un bouton est cliqué?
- 12. Comment détecter si un marqueur est à l'intérieur d'un polygone dans google maps
- 13. Afficher le texte sur Google Maps
- 14. Comment vérifier si le formulaire est maximisé?
- 15. Google Maps dérobant la mise au point lorsque la carte est sous le pli
- 16. Comment vérifier si le fichier est binaire?
- 17. Comment vérifier si le document est prêt?
- 18. Comment vérifier si un objet est nul
- 19. Comment vérifier si un BOOL est nul?
- 20. comment vérifier si le fichier est php?
- 21. Comment vérifier si l'utilisateur possède un compte Google.
- 22. comment vérifier si le plist est vide
- 23. Comment vérifier si le format est correct
- 24. Google maps rechercher un emplacement
- 25. Comment travailler avec google maps?
- 26. Comment vérifier si un menu est affiché
- 27. Clustering dans Google Maps
- 28. Comment vérifier si un pointeur est valide?
- 29. Comment vérifier si un objet est nul
- 30. Comment vérifier si un fichier est ouvert
Cette méthode ne fonctionnera pas. Certaines étapes peuvent être longues de plus de 50 km (comme lorsque vous empruntez la même autoroute). Si mon point d'intérêt est à mi-chemin de cette étape, vérifier si le point est dans un rayon de 25 km donnera beaucoup de faux positifs. J'ai besoin de savoir si le point est exactement sur cette route ou non. – Pavel
@Pavel: Vous avez raison. Vérifiez la réponse mise à jour. Il devait parcourir les sommets des polylignes, et non pas les étapes de routage comme je l'ai suggéré plus tôt. –