La evitación de giros en U es una función de optimización de rutas que impide que los vehículos giren en la ubicación de partida o destino específica de una visita. Si estableces la evitación de giros en U, especificas que el vehículo debe mirar en la misma dirección cuando llega a una ubicación de visita y cuando se va.
La evitación de giros en U funciona de la siguiente manera:
- Estableces la propiedad de evitación de giros en U en una visita específica.
- La API considera ambas direcciones de viaje en las rutas de doble sentido y elige el camino más óptimo.
- La API genera una ruta en la que el vehículo llega y se va sin hacer un giro en U en la ubicación de la visita. Es posible que el conductor deba cruzar la calle para llegar a esta ubicación.
Esta propiedad es ideal para situaciones en las que hacer un giro en U es difícil o imposible debido al tamaño del vehículo, las señales de tránsito o las condiciones de tráfico normales.
Propiedades
La propiedad de evitación de giros en U se define dentro del VisitRequest objeto.
Este objeto se usa dentro de los pickups y deliveries arrays de un
envío.
| Propiedad | Tipo | Descripción |
|---|---|---|
avoidUTurns |
booleano | Cuando se establece en true, la API impide que el vehículo haga un giro en U en esta ubicación de visita. El vehículo llegará y se irá mirando en la misma dirección. |
Ejemplos
En esta sección, se abarcan dos tipos de ejemplos:
- Muestras de código que ilustran la estructura de la evitación de giros en U
- Un ejemplo de solicitud que incluye la función
Muestras de código
En el siguiente ejemplo, se muestra la estructura de avoidUTurns dentro de una partida
y un destino:
"pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ]
Ejemplo de solicitud
En el siguiente ejemplo, se muestra una solicitud básica de optimizeTours que
incorpora la evitación de giros en U. Esta solicitud incluye los siguientes elementos:
- Un envío con una partida y un destino dentro del objeto
model - La propiedad
avoidUTurnsestablecida entrueen las ubicaciones de partida y destino para evitar que el vehículo cambie de dirección en esas paradas
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
Evita los giros en U con sideOfRoad
Si bien sideOfRoad es una función independiente, está estrechamente relacionada con la evitación de giros en U
ya que evita muchos giros en U enrutando el vehículo al lado de
la ruta más cercano al destino. Esto obliga al vehículo a acercarse a una ubicación de visita desde una dirección específica, lo que elimina la necesidad de hacer un giro en U.
En la práctica, debes usar la evitación de giros en U cuando sea seguro cruzar la calle a pie para llegar a la ubicación de la visita. Si no se recomienda cruzar la calle o no es posible, considera establecer sideOfRoad en true
en su lugar.
La propiedad sideOfRoad se define dentro de un objeto Waypoint.
Interacción con otras funciones
La evitación de giros en U interactúa con otras funciones de enrutamiento de las siguientes maneras:
- Lado de la ruta: Si estableces
avoidUTurnsysideOfRoadentrueaumentan ligeramente las probabilidades de evitar un giro en U mientras se enruta el vehículo al lado de la ruta más cercano a la ubicación de la visita. Sin embargo, esto introduce complejidades adicionales relacionadas con las restricciones de la evitación de giros en U. Para la mayoría de las ubicaciones de visita, establecer solo una de estas propiedades es suficiente para evitar los giros en U. - Soluciones insertadas: Cuando usas la evitación de giros en U, la respuesta de la API
incluye un
injectedSolutionLocationTokendentro delShipmentRoute.Visitgenerado para registrar qué lado de la ruta seleccionó. Si alguna vez vuelves a usar esta visita como una solución insertada en una solicitud futura, debes pasar este token a la API.
Limitaciones
La evitación de giros en U es una función que se realiza de la mejor manera posible. Es posible que la API aún incluya giros en U en una ruta generada en las siguientes condiciones:
- El modo de viaje se establece en un modo que no es
DRIVING. - Las ubicaciones de llegada y salida de una ubicación de visita específica son diferentes. En este caso, la API muestra un error.
- La visita se encuentra en una calle sin salida, lo que requiere un giro en U para salir.
- El giro en U se produce a lo largo de la ruta, en lugar de en la ubicación de la visita real.
- La maniobra es un giro muy pronunciado hacia una ruta diferente, que la API no clasifica como un giro en U.