google-maps - obtener - mapa con coordenadas geográficas
Obtenga coordenadas geográficas exactas a lo largo de una ruta completa, Google Maps u OpenStreetMap (4)
Añadiendo a la respuesta de Marlio.
Puede utilizar la API de Google Maps Directions en sí. Para un origen y destino dados, en la salida JSON, busque lo siguiente:
"polyline" : {
"points" : ""
}
Puede usar un decodificador para obtener las coordenadas de la polilínea .: https://github.com/emcconville/google-map-polyline-encoding-tool Or. Puedes usar el paquete googleway en R para decodificar el mismo. https://cran.r-project.org/web/packages/googleway/googleway.pdf
No estoy seguro de cómo configurar la resolución en el nivel deseado. Sin embargo, la resolución en la salida de la API es realmente buena.
Supongamos que tengo una ruta definida de una ciudad a otra. Desde la API de Google Maps puedo recuperar una ruta entre los dos. Sin embargo, la ruta devuelta por Google es una ruta de conducción que incluye coordenadas geográficas solo en lugares donde hay otro paso en un tramo (por ejemplo, donde tengo que girar de una carretera a otra).
Lo que necesito son ubicaciones geográficas (latitud / longitud) a lo largo de toda la ruta, a intervalos específicos (por ejemplo, cada 1/4 de milla o 100 m).
¿Hay alguna manera de lograr esto a través de los servicios web / API de Google Maps?
¿O sería la base de datos de OpenStreetMap la manera de hacerlo?
Saludos cordiales, Madeleine.
Como la respuesta aceptada está obsoleta y ya no funciona, aquí se explica cómo se pueden consultar todos los nodos a lo largo de una carretera utilizando el servicio de ruta del Proyecto OSRM .
Dado un número arbitrario de lon, pares de lat. Por ejemplo los tres siguientes (en Berlín):
- 13.388860,52.517037
- 13.397634,52.529407
- 13.428555,52.523219
El servicio de ruta calcula la ruta más rápida entre estos puntos y es posible devolver todos los nodos a lo largo de la carretera mediante la siguiente consulta:
http://router.project-osrm.org/route/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219?alternatives=false&annotations=nodes
Esto devuelve una respuesta json que contiene ID de nodo de todos los nodos a lo largo de la ruta. El resultado debe verse algo como esto:
{
"routes": [
{
...
"legs": [
{
"annotation": {
"nodes": [
2264199819,
2045820592,
21487242,
...
]
}
Para recibir las coordenadas lat, lon de los nodos OverpassAPI se pueden utilizar.
[out:json];
(
node(264199819);
node(...);
node(...);
...
);
(._;>;);
out;
Aquí hay una solicitud de muestra que utiliza overpass-turbo: http://overpass-turbo.eu/s/toe
Es simplemente el método google.maps.DirectionsService (). Route (). Debe pasar la solicitud de servicio y luego una devolución de llamada que se ejecuta al completar la solicitud de servicio.
https://developers.google.com/maps/documentation/javascript/directions
OSRM le proporciona rutas con geometrías de carreteras como están en la base de datos de OpenStreetMap. Por ejemplo, puede obtener la ruta como GPX (y postprocesar este archivo si lo desea). Esto se vería como el siguiente:
GET http://router.project-osrm.org/viaroute?hl=en&loc=47.064970,15.458470&loc=47.071100,15.476760&output=gpx
Leer más: OSRM API docs .