- Solicitud HTTP
- Parámetros de ruta de acceso
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Alcances de la autorización
Envía un OptimizeToursRequest
con un ShipmentModel
y muestra un OptimizeToursResponse
con ShipmentRoute
, que son un conjunto de rutas que realizarán los vehículos y que minimizan el costo general.
Un modelo ShipmentModel
consta principalmente de Shipment
que se deben realizar y Vehicle
que se pueden usar para transportar los Shipment
. Los ShipmentRoute
asignan Shipment
a Vehicle
. Más concretamente, asigna una serie de elementos Visit
a cada vehículo, en los que un Visit
corresponde a un VisitRequest
, que corresponde al retiro o la entrega de un Shipment
.
El objetivo es proporcionar una asignación de ShipmentRoute
a Vehicle
que minimice el costo total en el que el costo tiene muchos componentes definidos en ShipmentModel
.
Solicitud HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
La URL usa la sintaxis de la transcodificación gRPC.
Parámetros de ruta de acceso
Parámetros | |
---|---|
parent |
Obligatorio. Proyecto de destino o ubicación para hacer una llamada. Formato: * Si no se especifica una ubicación, se elegirá una automáticamente. |
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
Representación JSON |
---|
{ "timeout": string, "model": { object ( |
Campos | |
---|---|
timeout |
Si se establece este tiempo de espera, el servidor mostrará una respuesta antes de que finalice el tiempo de espera o de que se alcance el plazo del servidor para las solicitudes síncronas, lo que ocurra primero. Para las solicitudes asíncronas, el servidor generará una solución (si es posible) antes de que haya transcurrido el tiempo de espera. Una duración en segundos con hasta nueve dígitos decimales que terminen en " |
model |
Modelo de envío a resolver. |
solvingMode |
De forma predeterminada, el modo de resolución es |
searchMode |
Modo de búsqueda que se usa para resolver la solicitud. |
injectedFirstSolutionRoutes[] |
Guiar al algoritmo de optimización para que encuentre una primera solución similar a una anterior El modelo se ve limitado cuando se compila la primera solución. Cualquier envío que no se realice en una ruta se omitirá implícitamente en la primera solución, pero se podrán realizar en soluciones sucesivas. La solución debe cumplir con algunas suposiciones básicas de validez:
Si la solución inyectada no es factible, no necesariamente se devuelve un error de validación y, en su lugar, se puede mostrar un error que indica inviabilidad. |
injectedSolutionConstraint |
Restringir el algoritmo de optimización para encontrar una solución final que sea similar a una solución anterior. Por ejemplo, se puede usar para inmovilizar partes de rutas que ya se completaron o que se deben completar, pero que no se deben modificar. Si la solución inyectada no es factible, no necesariamente se devuelve un error de validación y, en su lugar, se puede mostrar un error que indica inviabilidad. |
refreshDetailsRoutes[] |
Si este campo no está vacío, se actualizarán las rutas proporcionadas, sin modificar su secuencia subyacente de visitas o tiempos de viaje: solo se actualizarán otros detalles. Esto no resuelve el modelo. A partir de 2020/11, esto solo propaga las polilíneas de rutas no vacías y requiere que Es posible que los campos Este campo no se debe usar junto con
|
interpretInjectedSolutionsUsingLabels |
Si es verdadero:
Esta interpretación se aplica a los campos Si es verdadero, las etiquetas de las siguientes categorías deben aparecer como máximo una vez en su categoría:
Si un Quitar las visitas a rutas o rutas completas de una solución inyectada puede afectar las restricciones implícitas, lo que puede provocar cambios en la solución, errores de validación o inviabilidad. NOTA: El llamador debe asegurarse de que cada |
considerRoadTraffic |
Considera la estimación del tráfico para calcular los campos |
populatePolylines |
Si es verdadero, las polilíneas se propagarán en |
populateTransitionPolylines |
Si es verdadero, las polilíneas se propagarán en la respuesta |
allowLargeDeadlineDespiteInterruptionRisk |
Si se configura, la solicitud puede tener un plazo (consulta https://grpc.io/blog/deadlines) de hasta 60 minutos. De lo contrario, el plazo máximo es solo de 30 minutos. Ten en cuenta que las solicitudes de larga duración tienen un riesgo de interrupción significativamente mayor (pero aún pequeño). |
useGeodesicDistances |
Si es verdadero, las distancias de viaje se calcularán con distancias geodésicas en lugar de distancias de Google Maps, y los tiempos de viaje se calcularán usando distancias geodésicas con una velocidad definida por |
label |
Etiqueta que puede usarse para identificar esta solicitud, informada en |
geodesicMetersPerSecond |
Cuando |
maxValidationErrors |
Trunca la cantidad de errores de validación que se muestran. Por lo general, estos errores se adjuntan a una carga útil de error INVALID_ formato de error como un detalle de error de BadRequest (https://cloud.google.com/apis/design/errors#error_details), a menos que resolveMode=VALIDATE_ONLY: consulte el campo |
Cuerpo de la respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de OptimizeToursResponse
.
Permisos de autorización
Requiere el siguiente alcance de OAuth:
https://www.googleapis.com/auth/cloud-platform