En la siguiente página, se incluyen tablas de parámetros en orden alfabético para los siguientes componentes del método optimizeTours de la API de Route Optimization:
En estas tablas de parámetros, solo se enumeran y describen brevemente los objetos de nivel superior y los parámetros principales para facilitar el descubrimiento. Para obtener una lista exhaustiva con descripciones completas y todos los parámetros anidados, consulta la documentación de referencia de la API.
Cuerpo de la solicitud
El cuerpo de la solicitud incluye los siguientes elementos, que se ilustran en el diagrama de la derecha y se enumeran en la siguiente tabla:
OptimizeToursRequest: Es el objeto de solicitud de nivel superior que contiene el modelo y los parámetros de resolución.ShipmentModel: Es la estructura de datos principal que contiene envíos, vehículos y restricciones globales.Shipment: Es una tarea con búsquedas de pasajeros y entregas.VisitRequest: Es la ubicación y las restricciones para un retiro o una entrega.
Vehicle: Es un vehículo disponible para realizar envíos.
| Padres | Parámetro | Tipo de propiedad | Descripción |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
booleano (true/false) |
Si es true, la solicitud se procesa incluso si el tiempo de espera se establece en un valor grande (más de 30 minutos) que podría provocar interrupciones en el servidor. |
considerRoadTraffic |
booleano (true/false) |
Si es true, usa datos de tráfico para el enrutamiento. Si es falso, solo se usan las velocidades de la red vial. |
|
geodesicMetersPerSecond |
número | Cuando useGeodesicDistances es verdadero, esta velocidad se usa para calcular los tiempos de viaje. |
|
injectedFirstSolutionRoutes[] |
Array de objetos (ShipmentRoute) |
Son las rutas de una solución anterior desde la que se inicia la optimización. | |
injectedSolutionConstraint |
object (InjectedSolutionConstraint) |
Restringe la solución para que sea similar a las rutas existentes, especificando qué propiedades se deben conservar y cuáles se pueden flexibilizar. | |
interpretInjectedSolutionsUsingLabels |
booleano (true/false) |
Si es true, se comparan los envíos o vehículos en las rutas insertadas por su label en lugar del índice de array. |
|
label |
string | Es una etiqueta arbitraria para identificar la solicitud, que se devuelve en la respuesta. | |
maxValidationErrors |
integer | Especifica la cantidad máxima de errores de validación que se devolverán. Si no se especifica, se aplica un límite predeterminado. | |
model |
object (ShipmentModel) |
Obligatorio. Es el conjunto de vehículos y envíos que se optimizarán. | |
populatePolylines |
booleano (true/false) |
Si es true, devuelve polilíneas codificadas para las rutas. |
|
populateTransitionPolylines |
booleano (true/false) |
Si es true, devuelve polilíneas codificadas para las transiciones individuales entre visitas. |
|
refreshDetailsRoutes[] |
Array de objetos (ShipmentRoute) |
Es una lista de rutas que se actualizarán. Esto vuelve a calcular las polilíneas, las duraciones y las distancias de las rutas existentes sin modificar la secuencia de visitas. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (resultados rápidos) o CONSUME_ALL_AVAILABLE_TIME (mejor calidad dentro del tiempo de espera). |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (predeterminado) o VALIDATE_ONLY para validar el modelo sin resolverlo. |
|
timeout |
Duración | Es la duración máxima que debe ejecutarse el solucionador (p.ej., "30s", "300s"). | |
useGeodesicDistances |
booleano (true/false) |
Si es true, las distancias y los tiempos de viaje se calculan con las distancias geodésicas (en línea recta) y la velocidad geodesicMetersPerSecond. |
|
ShipmentModel(parte de OptimizeToursRequest) |
durationDistanceMatrices[] |
Array de objetos (DurationDistanceMatrix) |
Especifica matrices de duración y distancia personalizadas que se usan para el enrutamiento entre ubicaciones. |
durationDistanceMatrixDstTags[] |
Es un array de cadenas. | Son las etiquetas que definen los destinos (columnas) para las matrices de duración y distancia personalizadas. | |
durationDistanceMatrixSrcTags[] |
Es un array de cadenas. | Son las etiquetas que definen las fuentes (filas) de las matrices de duración y distancia personalizadas. | |
globalDurationCostPerHour |
número | Es el costo por hora del período global de la ruta, desde el inicio del vehículo más temprano hasta el final del vehículo más tardío. | |
globalEndTime |
Marca de tiempo | Es la hora de finalización más reciente de cualquier evento del modelo. | |
globalStartTime |
Marca de tiempo | Es la hora de inicio más temprana para cualquier evento del modelo. | |
maxActiveVehicles |
integer | Es la cantidad máxima de vehículos que pueden estar activos en la solución. | |
precedenceRules[] |
Array de objetos (PrecedenceRule) |
Son reglas que definen restricciones de ordenamiento entre envíos específicos. | |
shipments[] |
Array de objetos (Shipment) |
Es la lista de envíos a los que se les debe brindar servicio. | |
shipmentTypeIncompatibilities[] |
Array de objetos (ShipmentTypeIncompatibility) |
Son reglas que impiden que el mismo vehículo transporte envíos de ciertos tipos. | |
shipmentTypeRequirements[] |
Array de objetos (ShipmentTypeRequirement) |
Reglas que requieren que el mismo vehículo realice el servicio de envíos de ciertos tipos. | |
transitionAttributes[] |
Array de objetos (TransitionAttributes) |
Especifica costos adicionales, demoras y límites de distancia para las transiciones entre visitas con etiquetas específicas. | |
vehicles[] |
Array de objetos (Vehicle) |
Es la lista de vehículos disponibles para realizar los envíos. | |
Shipment(parte de ShipmentModel) |
allowedVehicleIndices[] |
Array de números enteros | Índices de los vehículos que pueden realizar este envío. |
costsPerVehicle[] |
map (clave: integer, valor: number) | Son los costos adicionales que se generan si un vehículo específico presta el servicio de este envío. | |
costsPerVehicleIndices[] |
Array de números enteros | Son los índices de los vehículos a los que se aplican los valores de costsPerVehicle. |
|
deliveries[] |
Array de objetos (VisitRequest) |
Alternativas para entregar el envío | |
ignore |
booleano (true/false) |
Si es true, el envío se ignora y no se usa en la optimización. |
|
label |
string | Es la etiqueta definida por el usuario para identificar el envío, que se devuelve en la respuesta. | |
loadDemands |
map (key: string, value: Load) |
Es la capacidad requerida (p.ej., peso o volumen) para transportar este envío. | |
penaltyCost |
número | Costo si no se realiza el envío. Si no se configura, el envío es obligatorio. | |
pickups[] |
Array de objetos (VisitRequest) |
Alternativas para retirar el envío. | |
pickupToDeliveryAbsoluteDetourLimit |
Duración | Es el tiempo máximo absoluto de desvío permitido entre la partida y el destino en comparación con la ruta directa. | |
pickupToDeliveryRelativeDetourLimit |
número | Es el desvío relativo máximo permitido para el envío (p.ej., un valor de 2.0 significa que el tiempo total puede ser como máximo 2 veces el tiempo de viaje directo). | |
pickupToDeliveryTimeLimit |
Duración | Es la duración máxima permitida desde el inicio de la recolección hasta el inicio de la entrega. | |
shipmentType |
string | Es la clasificación de tipo que se usa para las reglas de incompatibilidad y requisitos. | |
VisitRequest(un componente de pickups y deliveries en Shipment) |
arrivalLocation |
object (LatLng) |
Ubicación geográfica de llegada como coordenadas de latitud y longitud. |
arrivalWaypoint |
object (Waypoint) |
Es la ubicación a la que llega el vehículo para realizar la visita. Se define por coordenadas o un ID de lugar. | |
cost |
número | Es el costo en el que se incurre si el solucionador selecciona esta solicitud de visita específica. | |
departureLocation |
object (LatLng) |
Ubicación geográfica de partida como coordenadas de latitud y longitud. | |
departureWaypoint |
object (Waypoint) |
Es la ubicación desde la que el vehículo sale después de completar la visita. Si se omite, se supone que es el mismo que arrivalWaypoint. |
|
duration |
Duración | La duración de la visita (tiempo de servicio), p. ej., cuánto tiempo lleva cargar o descargar | |
label |
string | Es la etiqueta definida por el usuario para esta solicitud de visita específica, que se devuelve en la respuesta. | |
loadDemands |
map (key: string, value: Load) |
Demandas que especifican el cambio de carga en esta visita (p.ej., -1 para dejar un paquete). | |
tags[] |
Es un array de cadenas. | Son las etiquetas adjuntas a esta solicitud de visita. Se usan para calcular los tiempos de viaje entre esta visita y otras con transitionAttributes. |
|
timeWindows[] |
Array de objetos (TimeWindow) |
Son los períodos permitidos para la llegada a esta visita. | |
visitTypes[] |
Es un array de cadenas. | Cadenas que describen el tipo de visita (p.ej., "delivery", "installation"). Se usa para aplicar extraVisitDurationForVisitType desde el modelo de vehículo. |
|
Vehicle(parte de ShipmentModel) |
breakRule |
object (BreakRule) |
Define reglas para los descansos (p.ej., el descanso obligatorio para el almuerzo). |
costPerHour |
número | Es el costo por hora de la duración total de la ruta. | |
costPerKilometer |
número | Es el costo por kilómetro recorrido. | |
costPerTraveledHour |
número | Costo por hora mientras el vehículo está en movimiento. | |
endLocation |
object (LatLng) |
Ubicación geográfica final en coordenadas de latitud y longitud. | |
endTags[] |
Es un array de cadenas. | Son las etiquetas que definen el estado final del vehículo y que se usan para los atributos de transición. | |
endTimeWindows[] |
Array de objetos (TimeWindow) |
Son los períodos permitidos para que el vehículo finalice su ruta. | |
endWaypoint |
object (Waypoint) |
Ubicación geográfica final con un punto de ruta (coordenadas o ID de lugar). | |
extraVisitDurationForVisitType |
map (clave: cadena, valor: Duration) | Agrega duración adicional a las visitas según su visitType. |
|
fixedCost |
número | Es un costo fijo que se aplica si se usa el vehículo, independientemente de la distancia o la duración de la ruta. | |
ignore |
booleano (true/false) |
Si es true, se ignora el vehículo y no se usa en la optimización. |
|
label |
string | Es la etiqueta definida por el usuario para el vehículo, que se devuelve en la respuesta. | |
loadLimits |
map (key: string, value: LoadLimit) |
Capacidades del vehículo (p. ej., peso máximo y volumen máximo) | |
routeDistanceLimit |
object (DistanceLimit) |
Es un límite estricto o flexible sobre la distancia total de la ruta del vehículo. | |
routeDurationLimit |
object (DurationLimit) |
Es un límite estricto o flexible sobre la duración total de la ruta del vehículo. | |
routeModifiers |
object (RouteModifiers) |
Una o varias restricciones, como evitar peajes, autopistas o ferris | |
startLocation |
object (LatLng) |
Ubicación geográfica de inicio como coordenadas de latitud y longitud. | |
startTags[] |
Es un array de cadenas. | Son las etiquetas que definen el estado inicial del vehículo y que se usan para los atributos de transición. | |
startTimeWindows[] |
Array de objetos (TimeWindow) |
Son los períodos permitidos para que el vehículo comience su ruta. | |
startWaypoint |
object (Waypoint) |
Ubicación geográfica de inicio con un punto de ruta (coordenadas o ID de lugar). | |
travelDurationLimit |
object (DurationLimit) |
Es un límite estricto o flexible sobre la duración total del viaje (sin incluir el tiempo de espera o servicio) del vehículo. | |
travelDurationMultiple |
número | Multiplicador aplicado a los tiempos de viaje (p.ej., 1.5 hace que el viaje sea un 50% más lento). | |
travelMode |
enum (TravelMode) |
El modo de viaje (p.ej., DRIVING, WALKING). Afecta los tiempos y las distancias de viaje. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Define el orden de descarga (p.ej., LIFO o LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
booleano (true/false) |
Si es true, se considera que el vehículo se usó, incluso sin envíos. Genera costos fijos y viaja entre sus ubicaciones de inicio y destino. |
Cuerpo de la respuesta
El cuerpo de la respuesta incluye los siguientes elementos, que se ilustran en el diagrama de la derecha y se enumeran en la siguiente tabla:
OptimizeToursResponse: Es el objeto de respuesta de nivel superior que contiene las rutas y las métricas optimizadas.Metrics: Son las estadísticas generales de costo y ejecución de la solución.ShipmentRoute: Es la secuencia de visitas y la ruta de viaje asignadas a un solo vehículo.Visit: Es una parada en una ruta para realizar una búsqueda de pasajeros o una entrega.Transition: Es la ruta de viaje y la duración entre dos paradas de la ruta.AggregatedMetrics: Son los totales sumados de la duración, la distancia y otras métricas. Este elemento puede estar presente enMetricsyShipmentRoute.
| Padres | Parámetro | Tipo de propiedad | Descripción |
|---|---|---|---|
OptimizeToursResponse |
metrics |
object (Metrics) |
Son las métricas agregadas de la solución, incluidos el costo total, la distancia total, la duración total y los recuentos de uso del vehículo. |
requestLabel |
string | Es la etiqueta copiada del campo label de la solicitud. Se usa para correlacionar la respuesta con la solicitud original. |
|
routes[] |
Array de objetos (ShipmentRoute) |
Es la lista de rutas calculadas para cada vehículo. Contiene una entrada para cada vehículo, independientemente de su uso. | |
skippedShipments[] |
Array de objetos (SkippedShipment) |
Es la lista de envíos que se omitieron (no se procesaron), junto con los motivos por los que se omitieron. | |
validationErrors[] |
Array de objetos (OptimizeToursValidationError) |
Es una lista de errores de validación que se encontraron en el modelo de entrada. Este campo se completa si solvingMode se estableció en VALIDATE_ONLY o si se produjeron errores durante la resolución. |
|
Metrics(parte de OptimizeToursResponse) |
aggregatedRouteMetrics |
object (AggregatedMetrics) |
Estadísticas agregadas en todas las rutas, como la distancia total recorrida, la duración total y los tiempos de espera. |
costs |
map (key: string, value: number) | Un desglose de los costos por tipo (p.ej., "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
earliestVehicleStartTime |
Marca de tiempo | Es la hora de inicio más temprana entre todos los vehículos utilizados. | |
latestVehicleEndTime |
Marca de tiempo | Es la hora de finalización más reciente entre todos los vehículos usados. | |
skippedMandatoryShipmentCount |
integer | Es la cantidad de envíos obligatorios que se omitieron. | |
totalCost |
número | Es el costo total de la solución, que suma todos los costos de ruta y las penalizaciones por envíos omitidos. | |
usedVehicleCount |
integer | Es la cantidad de vehículos que se usan en la solución. | |
AggregatedMetrics(parte de Metrics y ShipmentRoute) |
breakDuration |
Duración | Es la duración total de los descansos tomados en todas las rutas. |
costs |
map (key: string, value: number) | Un desglose de los costos por tipo (p.ej., "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
delayDuration |
Duración | Es la duración total del retraso en todas las rutas. | |
earliestVehicleStartTime |
Marca de tiempo | Es la hora de inicio más temprana entre todos los vehículos utilizados. | |
latestVehicleEndTime |
Marca de tiempo | Es la hora de finalización más reciente entre todos los vehículos usados. | |
maxLoads |
map (key: string, value: VehicleLoad) |
Es la carga máxima que transporta cualquier vehículo en cualquier punto de la solución, organizada por tipo de carga. | |
performedShipmentCount |
integer | Es la cantidad total de envíos realizados en todos los vehículos. | |
skippedMandatoryShipmentCount |
integer | Es la cantidad de envíos obligatorios que se omitieron. | |
totalCost |
número | Es el costo total de la solución, que suma todos los costos de ruta y las penalizaciones por envíos omitidos. | |
totalDuration |
Duración | Es la duración total de todas las rutas (viaje + espera + demora + descanso + visita). | |
travelDistanceMeters |
número | Es la distancia total del viaje en metros en todas las rutas. | |
travelDuration |
Duración | Es la duración total del viaje en todas las rutas. | |
usedVehicleCount |
integer | Es la cantidad de vehículos que se usan en la solución. | |
visitDuration |
Duración | Es la duración total que se dedicó a realizar visitas (carga o descarga) en todas las rutas. | |
waitDuration |
Duración | Es la duración total de la espera en todas las rutas. | |
ShipmentRoute(parte de OptimizeToursResponse) |
breaks[] |
Array de objetos (Break) |
Es una lista de los descansos que tomó el vehículo durante la ruta. |
hasTrafficInfeasibilities |
booleano (true/false) |
Indica si la ruta tiene alguna inviabilidad relacionada con el tráfico. | |
metrics |
object (AggregatedMetrics) |
Son las métricas específicas de esta ruta, como la distancia total y la duración del viaje. | |
routeCosts |
map (key: string, value: number) | Es un desglose de los costos de esta ruta. Las claves son tipos de costos (p.ej., "cost_per_hour"), y los valores son los importes. | |
routePolyline |
object (EncodedPolyline) |
Es la polilínea codificada que representa geográficamente la ruta completa. | |
routeTotalCost |
número | Es el costo total de la ruta, que es la suma de todos los costos en el mapa routeCosts. |
|
transitions[] |
Array de objetos (Transition) |
Es una lista ordenada de transiciones (tramos de viaje) que conectan las visitas. | |
vehicleEndTime |
Marca de tiempo | Es la hora en la que el vehículo finaliza su ruta. | |
vehicleIndex |
integer | Es el índice del vehículo en el ShipmentModel de origen que realiza esta ruta. |
|
vehicleLabel |
string | Es la etiqueta del vehículo definida por el usuario y copiada del modelo de solicitud. | |
vehicleStartTime |
Marca de tiempo | Es la hora a la que el vehículo comienza su ruta. | |
visits[] |
Array de objetos (Visit) |
Es la secuencia ordenada de visitas (retiros y entregas) que realiza el vehículo en esta ruta. | |
Visit(parte de ShipmentRoute) |
detour |
Duración | Es el tiempo adicional de desvío que se generó en esta visita en comparación con la ruta directa entre la visita anterior y la siguiente. |
isPickup |
booleano (true/false) |
Si es true, esta visita es un retiro. Si es falso, se trata de una entrega. |
|
loadDemands |
map (key: string, value: Load) |
Son las demandas de carga satisfechas por esta visita (p.ej., -1 para una entrega). Esta es una copia de las demandas de carga de VisitRequest correspondientes. |
|
shipmentIndex |
integer | Índice del campo Shipment en el modelo fuente al que sirve esta visita. |
|
shipmentLabel |
string | Es la etiqueta del envío, copiada de ShipmentModel. |
|
startTime |
Marca de tiempo | Fecha y hora programadas para el inicio de la visita. | |
visitLabel |
string | Es la etiqueta de la solicitud de visita, copiada del VisitRequest en el modelo. |
|
visitRequestIndex |
integer | Índice del objeto VisitRequest en la lista de retiro o entrega del envío al que corresponde esta visita. |
|
Transition(parte de ShipmentRoute) |
breakDuration |
Duración | Es la duración de los descansos que se tomaron durante esta transición. |
delayDuration |
Duración | Es la duración de la demora incurrida durante esta transición (p.ej., llegar temprano y esperar un período). | |
routePolyline |
object (EncodedPolyline) |
Es la polilínea codificada que representa la ruta de esta transición específica. | |
routeToken |
string | Es un token opaco que se puede pasar al SDK de Navigation de Google para reconstruir la ruta durante la navegación. | |
startTime |
Marca de tiempo | Es la hora de inicio de esta transición. | |
totalDuration |
Duración | Es la duración total de la transición, incluidos los viajes, las esperas, los descansos y las demoras. | |
trafficInfoUnavailable |
booleano (true/false) |
Si es true, indica que los datos de tráfico no estaban disponibles para esta transición. |
|
travelDistanceMeters |
número | Es la distancia recorrida durante esta transición, en metros. | |
travelDuration |
Duración | Es la duración del viaje durante esta transición. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Carga que transporta el vehículo durante esta transición, con la clave del tipo de carga (p.ej., "peso"). | |
waitDuration |
Duración | Es la duración del tiempo de espera antes de que pueda comenzar la próxima visita. |