Puedes establecer una parada en una ruta, por ejemplo, para recoger o dejar a alguien, de dos maneras:
- Agregar un punto de referencia intermedio: Esta es la opción predeterminada. Agrega un punto de referencia intermedio entre el origen y el destino en el array
intermediates. El motor de enrutamiento ajusta el punto de referencia a la ruta navegable más cercana y divide la ruta en segmentosRouteLegconectados por esa parada. - Especificar un vehicleStopover: Si deseas que el motor de enrutamiento realice
un análisis adicional para evitar segmentos de ruta no aptos para detenerse, como
autopistas, túneles o pasos elevados, establece
vehicleStopover: trueen un punto de referencia.
Cómo agregar un punto de referencia intermedio
Para establecer una parada en una ruta, agrega un punto de referencia intermedio al array intermediates en tu solicitud.
Agregar un punto de referencia intermedio tiene los siguientes efectos:
- La ruta se divide en segmentos
RouteLeg: Cada segmento conecta una parada con la siguiente. - La coordenada se ajusta a una ruta: El motor de enrutamiento ajusta tu coordenada de latitud y longitud, que podría estar en una azotea o en un patio, al segmento de ruta navegable más cercano.
En muchas calles de superficie, el ajuste a la ruta más cercana proporciona una ubicación de parada práctica. Sin embargo, el ajuste no determina si ese segmento de ruta es adecuado para detenerse, como cuando la ruta más cercana es una autopista o un túnel.
Ejemplo: Agrega un punto de referencia intermedio
En el siguiente ejemplo, se muestra cómo establecer una parada en una ruta agregando un punto de referencia intermedio en una solicitud POST computeRoutes:
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Para obtener más información sobre los puntos de referencia intermedios y los tramos de ruta, consulta Cómo establecer puntos de referencia intermedios.
Cómo especificar un vehicleStopover para la idoneidad de la recogida y la entrega
Si bien un punto de referencia intermedio estándar se ajusta a la ruta más cercana, esa ruta no siempre es adecuada para una parada de vehículos. Cuando deseas que el motor de enrutamiento realice un análisis adicional para evaluar la idoneidad de la ruta para la recogida o la entrega, establece vehicleStopover: true en el punto de referencia.
Cuando estableces vehicleStopover: true, el motor de enrutamiento evalúa los segmentos de ruta candidatos y trata de evitar las rutas que no son adecuadas para detenerse, como autopistas, túneles y pasos elevados.
Por ejemplo, considera una ubicación en la que una ruta de superficie pasa directamente sobre una autopista dentro de un túnel: * Punto de referencia intermedio estándar: Se ajusta a la autopista o al túnel que se encuentra debajo si está más cerca geométricamente de tu coordenada. * Vehicle stopover: Realiza un análisis adicional para omitir la autopista y el túnel, y ajusta la parada a una ruta de superficie adecuada para detenerse.
Ejemplo: Especifica vehicleStopover en un punto de referencia
En el siguiente ejemplo, se muestra cómo establecer vehicleStopover: true en un punto de referencia intermedio en una solicitud POST completa:
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "vehicleStopover": true } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Para obtener más información sobre los tipos y las opciones de puntos de referencia, consulta Tipos y opciones de puntos de referencia.