Obtenir exacte geo coordonnées de l'ensemble d'un long itinéraire, Google Maps ou OpenStreetMap
Supposons que j'ai un itinéraire défini à partir d'une ville à l'autre. À partir de l'API Google Maps, je peux récupérer une route entre les deux. Cependant, la route est retourné à partir de Google est un itinéraire qui comprend les coordonnées géographiques seulement à des endroits où il y a une autre étape dans une jambe (par exemple, où je dois tourner à partir d'une autoroute à l'autre).
Ce dont j'ai besoin est géolocalisations (lat/long) le long de la route, à des intervalles spécifiques (par exemple, tous les 1/4 mile ou 100m).
Est-il un moyen pour accomplir cette via l'API Google Maps /web services?
Ou serait la base de données OpenStreetMap être la façon de le faire?
Salutations,
Madeleine.
- Êtes-vous essayer de faire des "marqueurs mile"? Comme cette question ou cet exemple
- Oui, quelque chose comme marqueurs mile est ce que je suis après. Le geocodzip lien est très utile.
Vous devez vous connecter pour publier un commentaire.
OSRM vous donne des itinéraires de la route de géométries comme ils sont dans la base de données OpenStreetMap. Par exemple, vous pouvez obtenir l'itinéraire que GPX (et de post-traiter ce fichier si vous le souhaitez). Ce serait semblable à la suivante:
Lire la suite: OSRM API docs.
Depuis que l'on a accepté la réponse est obsolète et ne fonctionne plus, voici la façon dont tous les nœuds le long d'une route peut être interrogé à l'aide de la service de l'itinéraire de Projet OSRM.
Donné un nombre arbitraire de lon,lat paires.
Par Exemple, les trois suivantes (à Berlin):
La route-service calcule l'itinéraire le plus rapide entre ces points et il est possible de retourner tous les nœuds le long de la route à l'aide de la requête suivante:
Cette fonction retourne une réponse json contenant les Id de nœud de tous les nœuds le long de la route. Le résultat devrait ressembler à quelque chose comme ceci:
Pour recevoir la lat,lon coordonnées des noeuds OverpassAPI peut être utilisé.
Voici un exemple de demande à l'aide de l'overpass-turbo: http://overpass-turbo.eu/s/toe
C'est tout simplement google.cartes.DirectionsService().route (la) méthode. Vous devez passer la demande de service, puis un rappel qui s'exécute lors de l'achèvement de la demande de service.
https://developers.google.com/maps/documentation/javascript/directions
Ajoutant à la Marlio de réponse.
Vous pouvez utiliser Google Maps Directions de l'API elle-même.
Pour un donné d'origine et de destination, dans le JSON de sortie, recherchez suivantes:
Vous pouvez utiliser un décodeur pour obtenir les coordonnées de la polyligne.:
https://github.com/emcconville/google-map-polyline-encoding-tool
Ou. vous pouvez utiliser le googleway package R pour décoder le même.
https://cran.r-project.org/web/packages/googleway/googleway.pdf
Je ne suis pas sûr de savoir comment régler la résolution désirée pour votre niveau.Mais la résolution de l'API de sortie est vraiment bonne.
overview_polyline
d'obtenir toutes les coordonnées de latitude/longitude pour l'ensemble de l'itinéraire. Le vignette donne plus d'exemples & détail.polyline : points
résultats dans beaucoup de redondance de l'information (par exemple le dernier de coordonner d'une jambe sera le début de la suivante). Alors que laoverview_polyline
a un point pour chaque changement de direction le long d'une route & route, et tous les points entre les deux sont donc sur une ligne droite et peut être déduite.