Para calcular una ruta, debes especificar, como mínimo, las ubicaciones de origen y destino de la ruta. Estas ubicaciones se definen como puntos de referencia en la ruta.
Además del origen y el destino, puedes especificar diferentes tipos de puntos de referencia y cómo controlarlos para una ruta. Para obtener más información y ejemplos, consulta estos temas:
- Especifica la dirección del vehículo y el lado de la ruta
- Especifica puntos de referencia intermedios
- Cómo establecer una parada en una ruta
- Establece un punto por el que debe pasar una ruta
- Optimiza el orden de las paradas en tu ruta
Especifica ubicaciones para una ruta
Para representar una ubicación, crea un objeto Waypoint (REST) o Waypoint (gRPC). En la definición del punto de referencia, puedes especificar una ubicación de cualquiera de las siguientes maneras:
- ID de lugar (preferido)
- Coordenadas de latitud y longitud
- Cadena de dirección ("Chicago, IL" o "Darwin, NT, Australia")
- Token de punto de navegación
- Plus Code
Puedes especificar ubicaciones para todos los puntos de referencia de una solicitud de la misma manera o puedes mezclarlas. Por ejemplo, puedes usar coordenadas de latitud y longitud para el punto de referencia de origen y un ID de lugar para el punto de referencia de destino.
Para lograr una mayor eficiencia y exactitud, usa IDs de lugar en lugar de coordenadas de latitud y longitud o cadenas de direcciones. Los IDs de lugar son explícitos de forma única y proporcionan beneficios de geocodificación para el enrutamiento, como puntos de acceso y variables de tráfico. Ayudan a evitar las siguientes situaciones que pueden producirse por otras formas de especificar una ubicación:
- Si usas coordenadas de latitud y longitud, es posible que la ubicación se ajuste a la ruta más cercana a esas coordenadas, que podría no ser un punto de acceso a la propiedad o incluso una ruta que lleve al destino de forma rápida o segura.
- Primero, la API de Routes debe geocodificar las cadenas de dirección para convertirlas en coordenadas de latitud y longitud antes de poder calcular una ruta. Esta conversión puede afectar el rendimiento.
Especifica una ubicación como un ID de lugar
Puedes usar un ID de lugar para especificar la ubicación de un punto de referencia. Debido a que las coordenadas de latitud y longitud se ajustan a las rutas, es posible que, en algunas circunstancias, un ID de lugar ofrezca mejores resultados.
Recupera IDs de lugar de la API de Geocoding y la API de Places (nueva) (incluida Autocomplete (nueva)). Para obtener más información sobre los IDs de lugar, consulta la descripción general de los IDs de lugar.
En el siguiente ejemplo, se usa la propiedad placeId para pasar un ID de lugar para origin y destination:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
Especifica una ubicación como coordenadas de latitud y longitud
Para definir la ubicación en un punto de referencia, especifica la ubicación (REST) o la ubicación (gRPC) con coordenadas de latitud y longitud.
Por ejemplo, especifica un punto de referencia para la ruta origin y destination
con las coordenadas latitude y longitude:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
Especifica una ubicación como una cadena de dirección
Las cadenas de dirección son direcciones literales representadas por una cadena (como "1600 Amphitheatre Parkway, Mountain View, CA"). La geocodificación es el proceso de convertir una cadena de dirección en coordenadas de latitud y longitud (como latitud 37.423021 y longitud -122.083739).
Cuando pasas una cadena de dirección como la ubicación de un punto de referencia, la API de Routes geocodifica internamente la cadena para convertirla en coordenadas de latitud y longitud.
Por ejemplo, para calcular una ruta, especifica un punto de referencia para la ruta origin y
destination con cadenas de dirección:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
En este ejemplo, la API de Routes geocodifica ambas direcciones para convertirlas en coordenadas de latitud y longitud.
Si el valor de la dirección es ambiguo, la API de Routes puede invocar una búsqueda para eliminar la ambigüedad de direcciones similares. Por ejemplo, "1st Street" podría ser un valor completo o parcial para "1st street NE" o "1st St SE". Este resultado puede ser diferente del que devuelve la API de Geocoding. Puedes evitar posibles interpretaciones erróneas con los IDs de lugar.
Establece la región de la dirección.
Si pasas una cadena de dirección incompleta como la ubicación de un punto de referencia, es posible que la API use coordenadas de latitud y longitud geocodificadas incorrectas. Por ejemplo, realizas una solicitud en la que especificas "Toledo" como origen y "Madrid" como destino para una ruta en automóvil:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
En este ejemplo, "Toledo" se interpreta como una ciudad del estado de Ohio, en Estados Unidos, y no en España. Por lo tanto, la solicitud devuelve un array vacío, lo que significa que no existen rutas:
{ [] }
Puedes configurar la API para que muestre resultados personalizados para una región en particular incluyendo el parámetro regionCode. Este parámetro especifica el código de región como un valor de dos caracteres de ccTLD ("dominio de nivel superior"). La mayoría de los códigos ccTLD son idénticos a los códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es "uk" (.co.uk), mientras que su código ISO 3166-1 es "gb" (técnicamente para la entidad "Reino Unido de Gran Bretaña e Irlanda del Norte").
Una solicitud de instrucciones sobre cómo llegar de "Toledo" a "Madrid" que incluye el parámetro regionCode devuelve resultados adecuados porque "Toledo" se interpreta como una ciudad de España:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
La respuesta ahora contiene la ruta calculada desde Toledo, España, hasta Madrid, España:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
Especifica una ubicación como un token de punto de navegación
Un token de punto de navegación es una cadena que codifica una ubicación y un contexto de ruta adicional. Los tokens de puntos de navegación pueden proporcionar rutas precisas a puntos de acceso específicos cerca de entradas, muelles de carga o áreas de recogida designadas. Esto es útil en casos como la entrega de comida o los viajes compartidos, en los que el punto de partida o de llegada puede ser ambiguo.
Para obtener un token de punto de navegación, llama al método Destinations de la API de Geocoding.
Para especificar un token de punto de navegación, sigue estos pasos:
- Obtén un
navigationPointTokencon el métodoSearchDestinationsde la API de Geocoding. Consulta la documentación de la API de Geocoding para obtener más información. - Crea un punto de referencia pasando el
navigationPointToken.
En el siguiente ejemplo, se usa la propiedad navigation_point_token para pasar un token de punto de navegación para origin y destination:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
Especifica una ubicación como un Plus Code
Muchas personas no tienen una dirección precisa, lo que puede dificultarles recibir entregas. O bien, las personas con una dirección pueden preferir aceptar entregas en ubicaciones más específicas, como una entrada trasera o un muelle de carga.
Los Plus Codes son como direcciones para personas o lugares que no tienen una dirección real. En lugar de direcciones con nombres de calles y números, los Plus Codes se basan en coordenadas de latitud y longitud, y se muestran como números y letras.
Google desarrolló los Plus Codes para que todas las personas y todos los lugares puedan tener una dirección. Un Plus Code es una referencia de ubicación codificada, derivada de las coordenadas de latitud y longitud, que representa un área: 1/8,000 de un grado por 1/8,000 de un grado (aproximadamente 14 m x 14 m en el Ecuador) o menos. Puedes usar Plus Codes como reemplazo de las direcciones en los lugares donde estas no existen o donde los edificios no están numerados o las calles no tienen nombre.
Los Plus Codes deben tener el formato de un código global o un código compuesto:
- Un código global se compone de un código de área de 4 caracteres y un código local de 6 caracteres o más.
Por ejemplo, para la dirección "1600 Amphitheatre Parkway, Mountain View, CA", el código global es "849V" y el código local es "CWC8+R9". Luego, usa el Plus Code completo de 10 caracteres para especificar el valor de ubicación como "849VCWC8+R9".
- Un código compuesto consta de un código local de 6 caracteres o más combinado con una ubicación explícita.
Por ejemplo, la dirección "450 Serra Mall, Stanford, CA 94305, USA" tiene el código local "CRHJ+C3". Para una dirección compuesta, combina el código local con la ciudad, el estado, el código postal y el país de la dirección, con el formato "CRHJ+C3 Stanford, CA 94305, EE.UU.".
Por ejemplo, calcula una ruta especificando un punto de referencia para la ruta
originydestinationcon Plus Codes:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
Los Plus Codes son compatibles con las APIs de Google Maps Platform, incluidas Autocomplete (nueva), Place Details (nueva) y API de Geocoding. Por ejemplo, puedes usar la API de Geocoding para aplicar la geocodificación inversa a una ubicación especificada por coordenadas de latitud y longitud para determinar el Plus Code de la ubicación.