- Solicitud HTTP
- Parámetros de ruta
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- Permisos de autorización
- Permisos de IAM
Esta es una variante del método projects.optimizeTours diseñado para optimizaciones con valores de tiempo de espera grandes. Se debe preferir por sobre el método projects.optimizeTours para las optimizaciones que tardan más de unos minutos.
El long-running operation (LRO) que se muestra tendrá un nombre con el formato <parent>/operations/<operation_id> y se puede usar para hacer un seguimiento del progreso del cálculo. El tipo de campo metadata es OptimizeToursLongRunningMetadata. El tipo de campo response es OptimizeToursResponse, si se realiza correctamente.
Solicitud HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeToursLongRunning
La URL usa la sintaxis de la transcodificación gRPC.
Parámetros de ruta
| Parámetros | |
|---|---|
parent |
Obligatorio. Es el proyecto o la ubicación de destino para realizar una llamada. Formato:
No se admiten los valores regionales de |
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 devuelve una respuesta antes de que transcurra el período de tiempo de espera o se alcance el plazo del servidor para las solicitudes síncronas, lo que ocurra primero. En el caso de las solicitudes asíncronas, el servidor generará una solución (si es posible) antes de que transcurra el tiempo de espera. |
model |
Es el modelo de envío que se resolverá. |
solvingMode |
De forma predeterminada, el modo de resolución es |
searchMode |
Es el modo de búsqueda que se usó para resolver la solicitud. |
injectedFirstSolutionRoutes[] |
Guía el algoritmo de optimización para encontrar una primera solución que sea similar a una solución anterior. El modelo se restringe cuando se compila la primera solución. Los envíos que no se realicen en una ruta se omiten de forma implícita en la primera solución, pero se pueden realizar en soluciones sucesivas. La solución debe satisfacer algunas suposiciones de validez básicas:
Si la solución insertada no es factible, no necesariamente se devuelve un error de validación, sino que se puede devolver un error que indique que no es factible. |
injectedSolutionConstraint |
Restringe el algoritmo de optimización para encontrar una solución final similar a una solución anterior. Por ejemplo, esto se puede usar para congelar partes de rutas que ya se completaron o que se deben completar, pero no se deben modificar. Si la solución insertada no es factible, no necesariamente se devuelve un error de validación, sino que se puede devolver un error que indique que no es factible. |
refreshDetailsRoutes[] |
Si no está vacío, se actualizarán las rutas dadas, sin modificar su secuencia subyacente de visitas o duraciones de viaje: solo se actualizarán otros detalles. Esto no resuelve el modelo. A partir de noviembre de 2020, solo se completan las polilíneas de las rutas no vacías y se requiere 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 visitas de ruta o rutas completas de una solución insertada puede tener un efecto en las restricciones implícitas, lo que puede provocar un cambio en la solución, errores de validación o inviabilidad. NOTA: El emisor debe asegurarse de que cada |
considerRoadTraffic |
Considera la estimación de tráfico para calcular los campos |
populatePolylines |
Si es verdadero, se propagarán polilíneas en los |
populateTransitionPolylines |
Si es verdadero, las polilíneas y los tokens de ruta se propagarán en la respuesta |
allowLargeDeadlineDespiteInterruptionRisk |
Si se establece, la solicitud puede tener un plazo (consulta https://grpc.io/blog/deadlines) de hasta 60 minutos. De lo contrario, el plazo máximo es de solo 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 la duración del viaje se calculará con distancias geodésicas con una velocidad definida por |
label |
Es la etiqueta que se puede usar para identificar esta solicitud, que se informa en |
geodesicMetersPerSecond |
Cuando |
maxValidationErrors |
Trunca la cantidad de errores de validación que se devuelven. Por lo general, estos errores se adjuntan a una carga útil de error INVALID_ARGUMENT como un detalle de error BadRequest (https://cloud.google.com/apis/design/errors#error_details), a menos que solvingMode=VALIDATE_ONLY: consulta el campo |
Cuerpo de la respuesta
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de Operation.
Permisos de autorización
Requiere el siguiente permiso de OAuth:
https://www.googleapis.com/auth/cloud-platform
Permisos de IAM
Se requiere el siguiente permiso de IAM en el recurso parent:
routeoptimization.operations.create
Para obtener más información, consulta la documentación de IAM.