- Requête HTTP
- Paramètres de chemin d'accès
- Corps de la requête
- Corps de la réponse
- Champs d'application des autorisations
- Autorisations IAM
Envoie un OptimizeToursRequest
contenant un ShipmentModel
et renvoie un OptimizeToursResponse
contenant des ShipmentRoute
, qui sont un ensemble d'itinéraires que les véhicules doivent effectuer en minimisant le coût global.
Un modèle ShipmentModel
se compose principalement de Shipment
à exécuter et de Vehicle
pouvant être utilisés pour transporter les Shipment
. Les ShipmentRoute
attribuent des Shipment
aux Vehicle
. Plus précisément, ils attribuent une série de Visit
à chaque véhicule, où un Visit
correspond à un VisitRequest
, qui est un retrait ou une livraison pour un Shipment
.
L'objectif est d'attribuer des ShipmentRoute
à des Vehicle
de manière à minimiser le coût total, où le coût comporte de nombreux composants définis dans le ShipmentModel
.
Requête HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
L'URL utilise la syntaxe de transcodage gRPC.
Paramètres de chemin d'accès
Paramètres | |
---|---|
parent |
Obligatoire. Projet ou emplacement cible pour passer un appel. Format : * Si aucun lieu n'est spécifié, une région est choisie automatiquement. |
Corps de la requête
Le corps de la requête contient des données présentant la structure suivante :
Représentation JSON |
---|
{ "timeout": string, "model": { object ( |
Champs | |
---|---|
timeout |
Si ce délai est défini, le serveur renvoie une réponse avant l'expiration du délai ou avant que le délai du serveur pour les requêtes synchrones soit atteint, selon la première échéance atteinte. Pour les requêtes asynchrones, le serveur génère une solution (si possible) avant l'expiration du délai. Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par " |
model |
Modèle d'expédition à résoudre. |
solvingMode |
Par défaut, le mode de résolution est |
searchMode |
Mode de recherche utilisé pour résoudre la requête. |
injectedFirstSolutionRoutes[] |
Guider l'algorithme d'optimisation pour qu'il trouve une première solution semblable à une solution précédente Le modèle est soumis à des contraintes lors de la création de la première solution. Les expéditions qui ne sont pas effectuées sur un itinéraire sont implicitement ignorées dans la première solution, mais elles peuvent être effectuées dans des solutions successives. La solution doit satisfaire à quelques hypothèses de validité de base:
Si la solution injectée n'est pas réalisable, une erreur de validation n'est pas nécessairement renvoyée. À la place, une erreur indiquant une irrégularité peut être renvoyée. |
injectedSolutionConstraint |
Appliquez des contraintes à l'algorithme d'optimisation pour trouver une solution finale semblable à une solution précédente. Par exemple, vous pouvez les utiliser pour figer des portions de routes déjà terminées ou qui doivent l'être, mais qui ne doivent pas être modifiées. Si la solution injectée n'est pas réalisable, une erreur de validation n'est pas nécessairement renvoyée. À la place, une erreur indiquant une irrégularité peut être renvoyée. |
refreshDetailsRoutes[] |
Si ce n'est pas le cas, les itinéraires donnés seront actualisés, sans modifier leur séquence de visites sous-jacente ni les temps de trajet. Seuls d'autres détails seront mis à jour. Cela ne résout pas le modèle. Depuis 2020/11, seules les polylignes d'itinéraires non vides sont remplies et Les champs Ce champ ne doit pas être utilisé avec
|
interpretInjectedSolutionsUsingLabels |
Si la condition est vraie :
Cette interprétation s'applique aux champs Si la valeur est "true", les libellés des catégories suivantes ne doivent apparaître qu'une seule fois dans leur catégorie :
Si un Supprimer des visites ou des itinéraires entiers d'une solution injectée peut avoir un effet sur les contraintes implicites, ce qui peut entraîner un changement de la solution, des erreurs de validation ou une impossibilité. REMARQUE: L'appelant doit s'assurer que chaque |
considerRoadTraffic |
Tenir compte de l'estimation du trafic pour calculer les champs |
populatePolylines |
Si la valeur est "true", les polylignes sont renseignées dans les réponses |
populateTransitionPolylines |
Si la valeur est "true", les polylignes sont renseignées dans la réponse |
allowLargeDeadlineDespiteInterruptionRisk |
Si cet attribut est défini, la requête peut avoir un délai (voir https://grpc.io/blog/deadlines) de 60 minutes maximum. Sinon, le délai maximal n'est que de 30 minutes. Notez que les requêtes de longue durée présentent un risque d'interruption nettement plus important (mais tout de même faible). |
useGeodesicDistances |
Si la valeur est "true", les distances de trajet sont calculées en utilisant les distances géodésiques au lieu des distances Google Maps, et les temps de trajet sont calculés à l'aide de distances géodésiques avec une vitesse définie par |
label |
Libellé pouvant servir à identifier cette demande, signalé dans le |
geodesicMetersPerSecond |
Lorsque |
maxValidationErrors |
Tronque le nombre d'erreurs de validation renvoyées. Ces erreurs sont généralement associées à une charge utile d'erreur INVALID_ARGUMENT en tant que détails de l'erreur BadRequest (https://cloud.google.com/apis/design/errors#error_details), sauf si resolveMode=VALIDATE_ONLY: voir le champ |
Corps de la réponse
Si la requête aboutit, le corps de la réponse contient une instance de OptimizeToursResponse
.
Champs d'application des autorisations
Requiert le niveau d'accès OAuth suivant :
https://www.googleapis.com/auth/cloud-platform
Autorisations IAM
Nécessite l'autorisation IAM suivante sur la ressource parent
:
routeoptimization.locations.use
Pour en savoir plus, consultez la documentation IAM.