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 los envíos, los vehículos y las restricciones globales.Shipment: Es una tarea con retiros 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 causar 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 de rutas. |
|
geodesicMetersPerSecond |
número | Cuando useGeodesicDistances es verdadero, se usa esta velocidad para calcular la duración del viaje. |
|
injectedFirstSolutionRoutes[] |
array de objetos (ShipmentRoute) |
Son las rutas de una solución anterior desde la que se inicia la optimización. | |
injectedSolutionConstraint |
objeto (InjectedSolutionConstraint) |
Restringe la solución para que sea similar a las rutas existentes y especifica qué propiedades se deben conservar y cuáles se pueden flexibilizar. | |
interpretInjectedSolutionsUsingLabels |
booleano (true/false) |
Si es true, hace coincidir los envíos o vehículos en las rutas insertadas por su label en lugar del índice del 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 mostrarán. Si no se especifica, se aplica un límite predeterminado. | |
model |
objeto (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 de 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[] |
array de cadenas | Son etiquetas que definen los destinos (columnas) para las matrices de duración y distancia personalizadas. | |
durationDistanceMatrixSrcTags[] |
array de cadenas | Son etiquetas que definen los orígenes (filas) de las matrices de duración y distancia personalizadas. | |
globalDurationCostPerHour |
número | Es el costo por hora del intervalo de tiempo global de la ruta, desde el inicio más temprano del vehículo hasta el final más tardío. | |
globalEndTime |
Marca de tiempo | Es la hora de finalización más tardía 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 las restricciones de orden entre envíos específicos. | |
shipments[] |
array de objetos (Shipment) |
Es la lista de envíos que se deben entregar. | |
shipmentTypeIncompatibilities[] |
array de objetos (ShipmentTypeIncompatibility) |
Son reglas que impiden que el mismo vehículo entregue envíos de ciertos tipos. | |
shipmentTypeRequirements[] |
array de objetos (ShipmentTypeRequirement) |
Reglas que requieren que los envíos de ciertos tipos se realicen en el mismo vehículo. | |
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 | Son los índices de los vehículos que pueden realizar este envío. |
costsPerVehicle[] |
map (key: integer, value: number) | Son los costos adicionales en los que se incurre si un vehículo específico entrega 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) |
Son las 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) |
La capacidad necesaria (p.ej., peso, volumen) para transportar este envío. | |
penaltyCost |
número | Es el costo si no se entrega el envío. Si no se establece, 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 recogida y la entrega 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, el doble de la duración del 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 tipos que se usa para las reglas de incompatibilidad y requisitos. | |
VisitRequest(Un componente de pickups y deliveries en Shipment) |
arrivalLocation |
objeto (LatLng) |
Es la ubicación geográfica de llegada como coordenadas de latitud y longitud. |
arrivalWaypoint |
objeto (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 |
objeto (LatLng) |
Es la ubicación geográfica de salida como coordenadas de latitud y longitud. | |
departureWaypoint |
objeto (Waypoint) |
Es la ubicación desde la que sale el vehículo después de completar la visita. Si se omite, se supone que es igual que el arrivalWaypoint. |
|
duration |
Duración | La duración de la visita (tiempo de servicio), p.ej., cuánto tiempo se tarda en 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) |
Son demandas que especifican el cambio de carga en esta visita (p.ej., -1 para dejar un paquete). | |
tags[] |
array de cadenas | Son las etiquetas adjuntas a esta solicitud de visita. Se usan para calcular la duración del 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[] |
array de cadenas | Son cadenas que describen el tipo de visita (p.ej., "entrega", "instalación"). Se usa para aplicar extraVisitDurationForVisitType del modelo Vehicle. |
|
Vehicle(Parte de ShipmentModel) |
breakRule |
objeto (BreakRule) |
Define reglas para las pausas (p.ej., pausa obligatoria para el almuerzo). |
costPerHour |
número | Es el costo por hora de la duración total de la ruta. | |
costPerKilometer |
número | Costo por kilómetro recorrido. | |
costPerTraveledHour |
número | Es el costo por hora mientras el vehículo está en movimiento. | |
endLocation |
objeto (LatLng) |
Es la ubicación geográfica de finalización como coordenadas de latitud y longitud. | |
endTags[] |
array de cadenas | Son etiquetas que definen el estado final del vehículo y 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 |
objeto (Waypoint) |
Es la ubicación geográfica final con un punto de referencia (coordenadas o ID de lugar). | |
extraVisitDurationForVisitType |
map (key: string, value: Duration) | Agrega una 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, el vehículo se ignora 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, volumen máximo) | |
routeDistanceLimit |
objeto (DistanceLimit) |
Es un límite estricto o flexible para la distancia total de la ruta del vehículo. | |
routeDurationLimit |
objeto (DurationLimit) |
Es un límite estricto o flexible para la duración total de la ruta del vehículo. | |
routeModifiers |
objeto (RouteModifiers) |
Una o varias restricciones, como evitar peajes, autopistas o transbordadores | |
startLocation |
objeto (LatLng) |
Es la ubicación geográfica de inicio como coordenadas de latitud y longitud. | |
startTags[] |
array de cadenas | Son etiquetas que definen el estado inicial del vehículo y 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 |
objeto (Waypoint) |
Es la ubicación geográfica de inicio con un punto de referencia (coordenadas o ID de lugar). | |
travelDurationLimit |
objeto (DurationLimit) |
Es un límite estricto o flexible para la duración total del viaje (sin incluir el tiempo de espera o de servicio) del vehículo. | |
travelDurationMultiple |
número | Es el multiplicador que se aplica a la duración del viaje (p.ej., 1.5 hace que el viaje sea un 50% más lento). | |
travelMode |
enum (TravelMode) |
Es el modo de viaje (p. ej., DRIVING o WALKING), que afecta las duraciones y las distancias de los viajes. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Define el orden de descarga (p.ej., LIFO o LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
booleano (true/false) |
Si es true, el vehículo se considera usado incluso sin envíos. Genera costos fijos y viaja entre sus ubicaciones de partida 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: El costo general y las estadísticas de 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 un retiro 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 tanto enMetricscomo enShipmentRoute.
| Padres | Parámetro | Tipo de propiedad | Descripción |
|---|---|---|---|
OptimizeToursResponse |
metrics |
objeto (Metrics) |
Son las métricas agregadas para la solución, incluidos el costo total, la distancia total, la duración total y los recuentos de uso de vehículos. |
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 del uso. | |
skippedShipments[] |
array de objetos (SkippedShipment) |
Es la lista de envíos que se omitieron (no se entregaron), 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 |
objeto (AggregatedMetrics) |
Estadísticas agregadas de 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 | 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 tardía 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 las rutas 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 las pausas realizadas 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 de las demoras en todas las rutas. | |
earliestVehicleStartTime |
Marca de tiempo | 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 tardía entre todos los vehículos usados. | |
maxLoads |
map (key: string, value: VehicleLoad) |
La carga máxima que transporta cualquier vehículo en cualquier punto de la solución, con clave 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 las rutas 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 de 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 y 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 |
objeto (AggregatedMetrics) |
Métricas específicas de esta ruta, como la distancia total y la duración del viaje. | |
routeCosts |
map (key: string, value: number) | 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 |
objeto (EncodedPolyline) |
Es la polilínea codificada que representa la ruta de acceso completa de la ruta geográficamente. | |
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 definida por el usuario del vehículo, copiada del modelo de solicitud. | |
vehicleStartTime |
Marca de tiempo | Es la hora a la que el vehículo inicia 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 de desvío adicional que genera 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 que se satisfacen con esta visita (p.ej., -1 para una entrega). Esta es una copia de las demandas de carga de VisitRequest correspondientes. |
|
shipmentIndex |
integer | Es el índice del campo Shipment en el modelo de origen que entrega esta visita. |
|
shipmentLabel |
string | Es la etiqueta del envío, copiada de ShipmentModel. |
|
startTime |
Marca de tiempo | Es la hora en la que se programó el inicio de la visita. | |
visitLabel |
string | Es la etiqueta de la solicitud de visita, copiada del VisitRequest en el modelo. |
|
visitRequestIndex |
integer | Es el índice del VisitRequest en la lista de retiro o entrega del envío al que corresponde esta visita. |
|
Transition(Parte de ShipmentRoute) |
breakDuration |
Duración | La duración de las pausas que se hicieron durante esta transición. |
delayDuration |
Duración | Es la duración de la demora que se produce durante esta transición (p.ej., llegar temprano y esperar un período). | |
routePolyline |
objeto (EncodedPolyline) |
Es la polilínea codificada que representa la ruta de acceso 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 el viaje, la espera, los descansos y las demoras. | |
trafficInfoUnavailable |
booleano (true/false) |
Si es true, indica que no había datos de tráfico disponibles para esta transición. |
|
travelDistanceMeters |
número | Es la distancia recorrida durante esta transición, en metros. | |
travelDuration |
Duración | La duración del viaje durante esta transición. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Es la carga que transporta el vehículo durante esta transición, con clave por tipo de carga (p.ej., "peso"). | |
waitDuration |
Duración | Es la duración de la espera antes de que pueda comenzar la próxima visita. |