Lista de parámetros

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

La estructura de datos del 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

La estructura de datos del 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 en Metrics como en ShipmentRoute.
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.