- 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
Envoie un OptimizeToursRequest
contenant un ShipmentModel
et renvoie un OptimizeToursResponse
contenant des ShipmentRoute
, qui sont un ensemble d'itinéraires à effectuer par les véhicules dont le coût global est réduit.
Un modèle ShipmentModel
se compose principalement de Shipment
à exécuter et de Vehicle
qui peuvent être utilisés pour transporter les Shipment
. Les ShipmentRoute
attribuent des Shipment
aux Vehicle
. Plus précisément, elle attribue 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 de fournir une attribution de ShipmentRoute
à Vehicle
qui minimise le coût total lorsque de nombreux composants sont 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 emplacement n'est spécifié, une région sera 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 la fin du délai ou avant que le délai du serveur pour les requêtes synchrones ne 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 un maximum de neuf chiffres après la virgule, se terminant par " |
model |
Modèle de livraison à résoudre. |
solvingMode |
Par défaut, le mode de résolution est |
searchMode |
Mode de recherche utilisé pour résoudre la requête. |
injectedFirstSolutionRoutes[] |
Guidez l'algorithme d'optimisation pour trouver une première solution semblable à une solution précédente. Le modèle est soumis à des contraintes lorsque la première solution est créée. 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 répondre à certaines 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 et une erreur indiquant l'infaisabilité peut s'afficher à la place. |
injectedSolutionConstraint |
Appliquez des contraintes à l'algorithme d'optimisation pour trouver une solution finale semblable à une solution précédente. Vous pouvez, par exemple, figer des parties d'itinéraires déjà terminés ou qui doivent être terminés, mais qui ne doivent pas être modifiés. Si la solution injectée n'est pas réalisable, une erreur de validation n'est pas nécessairement renvoyée et une erreur indiquant l'infaisabilité peut s'afficher à la place. |
refreshDetailsRoutes[] |
S'il n'est pas vide, les itinéraires indiqués seront actualisés sans modifier leur séquence de visites ni leur temps de trajet sous-jacent: seuls les autres détails seront mis à jour. Cela ne résout pas le problème. Depuis 2020/11, seules les polylignes des itinéraires non vides sont insérées. La valeur Les champs Ce champ ne doit pas être utilisé avec
|
interpretInjectedSolutionsUsingLabels |
Si la valeur est "true" :
Cette interprétation s'applique aux champs Si la valeur est "true", les libellés des catégories suivantes doivent apparaître au maximum une fois dans leur catégorie:
Si un Supprimer des itinéraires 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 solution, des erreurs de validation ou une infaisabilité. REMARQUE: L'appelant doit s'assurer que chaque |
considerRoadTraffic |
Prenez en compte l'estimation du trafic pour calculer les champs |
populatePolylines |
Si la valeur est "true", les polylignes sont renseignées dans les |
populateTransitionPolylines |
Si la valeur est "true", les polylignes sont renseignées dans la réponse |
allowLargeDeadlineDespiteInterruptionRisk |
Si cette option est définie, la requête peut avoir un délai maximal de 60 minutes (voir https://grpc.io/blog/deadlines). 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 élevé (mais tout de même faible). |
useGeodesicDistances |
Si la valeur est "true", les distances des trajets seront calculées à l'aide des distances géodésiques et non de celles de Google Maps, et les temps de trajet seront calculés à l'aide des distances géodésiques avec une vitesse définie par |
label |
Libellé pouvant être utilisé pour identifier cette demande, indiqué 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étail de l'erreur BadRequest (https://cloud.google.com/apis/design/errors#error_details), sauf si la résolution du problème est de résolution=VALIDATE_ONLY: consultez 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