La page suivante contient des tableaux de paramètres par ordre alphabétique pour les composants suivants de la méthode optimizeTours de l'API Route Optimization :
Pour faciliter la découverte, ces tableaux de paramètres ne listent et ne décrivent que brièvement les objets de premier niveau et les principaux paramètres. Pour obtenir une liste exhaustive avec des descriptions complètes et tous les paramètres imbriqués, consultez la documentation de référence de l'API.
Corps de la requête
Le corps de la requête inclut les éléments suivants, qui sont illustrés dans le schéma à droite et listés dans le tableau ci-dessous :
OptimizeToursRequest: objet de requête de premier niveau contenant le modèle et les paramètres de résolution.ShipmentModel: structure de données principale contenant les expéditions, les véhicules et les contraintes globales.Shipment: tâche avec des collectes et des livraisons.VisitRequest: emplacement et contraintes pour un retrait ou une livraison.
Vehicle: véhicule disponible pour effectuer des livraisons.
| Parent | Paramètre | Type de propriété | Description |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
booléen (true/false) |
Si la valeur est true, la requête est traitée même si le délai avant expiration est défini sur une valeur élevée (supérieure à 30 minutes), ce qui risque d'entraîner des interruptions potentielles du serveur. |
considerRoadTraffic |
booléen (true/false) |
Si la valeur est true, les données de trafic sont utilisées pour le routage. Si la valeur est "false", seules les vitesses du réseau routier sont utilisées. |
|
geodesicMetersPerSecond |
nombre | Lorsque useGeodesicDistances est défini sur "true", cette vitesse est utilisée pour calculer les temps de trajet. |
|
injectedFirstSolutionRoutes[] |
Tableau d'objets (ShipmentRoute) |
Itinéraires d'une solution précédente à partir desquels commencer l'optimisation. | |
injectedSolutionConstraint |
object (InjectedSolutionConstraint) |
Contraint la solution à être similaire aux itinéraires existants, en spécifiant les propriétés qui doivent être conservées et celles qui peuvent être assouplies. | |
interpretInjectedSolutionsUsingLabels |
booléen (true/false) |
Si la valeur est définie sur true, les expéditions/véhicules des itinéraires injectés sont mis en correspondance par leur label au lieu de l'index du tableau. |
|
label |
chaîne | Libellé arbitraire permettant d'identifier la requête, renvoyé dans la réponse. | |
maxValidationErrors |
entier | Spécifie le nombre maximal d'erreurs de validation à renvoyer. Si aucune valeur n'est spécifiée, une limite par défaut s'applique. | |
model |
object (ShipmentModel) |
Obligatoire. Ensemble de véhicules et d'envois à optimiser. | |
populatePolylines |
booléen (true/false) |
Si la valeur est true, renvoie les polylignes encodées pour les itinéraires. |
|
populateTransitionPolylines |
booléen (true/false) |
Si la valeur est true, renvoie les polylignes encodées pour les transitions individuelles entre les visites. |
|
refreshDetailsRoutes[] |
Tableau d'objets (ShipmentRoute) |
Liste des routes à actualiser. Cela recalcule les polylignes, les durées et les distances des itinéraires existants sans modifier la séquence des visites. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (résultats rapides) ou CONSUME_ALL_AVAILABLE_TIME (meilleure qualité dans le délai d'inactivité). |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (par défaut) ou VALIDATE_ONLY pour valider le modèle sans le résoudre. |
|
timeout |
Durée | Durée maximale d'exécution du solveur (par exemple, "30s", "300s"). | |
useGeodesicDistances |
booléen (true/false) |
Si la valeur est true, les distances et les temps de trajet sont calculés à l'aide des distances géodésiques (en ligne droite) et de la vitesse geodesicMetersPerSecond. |
|
ShipmentModel(Partie de OptimizeToursRequest) |
durationDistanceMatrices[] |
Tableau d'objets (DurationDistanceMatrix) |
Spécifie les matrices de durée et de distance personnalisées utilisées pour le routage entre les lieux. |
durationDistanceMatrixDstTags[] |
tableau de chaînes | Tags définissant les destinations (colonnes) pour les matrices de durée et de distance personnalisées. | |
durationDistanceMatrixSrcTags[] |
tableau de chaînes | Tags définissant les sources (lignes) pour les matrices de durée et de distance personnalisées. | |
globalDurationCostPerHour |
nombre | Coût par heure de la durée totale de l'itinéraire, du début du trajet du premier véhicule à la fin du trajet du dernier véhicule. | |
globalEndTime |
Temporel | Heure de fin la plus tardive pour un événement du modèle. | |
globalStartTime |
Temporel | Heure de début la plus ancienne pour un événement du modèle. | |
maxActiveVehicles |
entier | Nombre maximal de véhicules pouvant être actifs dans la solution. | |
precedenceRules[] |
Tableau d'objets (PrecedenceRule) |
Règles définissant les contraintes d'ordre entre des expéditions spécifiques. | |
shipments[] |
Tableau d'objets (Shipment) |
Liste des envois à traiter. | |
shipmentTypeIncompatibilities[] |
Tableau d'objets (ShipmentTypeIncompatibility) |
Règles empêchant le transport de certains types d'envois par le même véhicule. | |
shipmentTypeRequirements[] |
Tableau d'objets (ShipmentTypeRequirement) |
Règles exigeant que les expéditions de certains types soient traitées par le même véhicule. | |
transitionAttributes[] |
Tableau d'objets (TransitionAttributes) |
Spécifie les coûts supplémentaires, les délais et les limites de distance pour les transitions entre les visites avec des tags spécifiques. | |
vehicles[] |
Tableau d'objets (Vehicle) |
Liste des véhicules disponibles pour effectuer les livraisons. | |
Shipment(Partie de ShipmentModel) |
allowedVehicleIndices[] |
tableau d'entiers | Indices des véhicules autorisés à effectuer cet envoi. |
costsPerVehicle[] |
map (clé : entier, valeur : nombre) | Coûts supplémentaires encourus si un véhicule spécifique assure la livraison. | |
costsPerVehicleIndices[] |
tableau d'entiers | Indices des véhicules auxquels s'appliquent les valeurs costsPerVehicle. |
|
deliveries[] |
Tableau d'objets (VisitRequest) |
Autres options de livraison du colis. | |
ignore |
booléen (true/false) |
Si la valeur est true, l'expédition est ignorée et n'est pas utilisée pour l'optimisation. |
|
label |
chaîne | Libellé défini par l'utilisateur pour identifier l'envoi, renvoyé dans la réponse. | |
loadDemands |
map (key: string, value: Load) |
Capacité requise (par exemple, poids ou volume) pour transporter cet envoi. | |
penaltyCost |
nombre | Coût si l'envoi n'est pas pris en charge Si cette valeur n'est pas définie, l'expédition est obligatoire. | |
pickups[] |
Tableau d'objets (VisitRequest) |
Autres options pour récupérer le colis. | |
pickupToDeliveryAbsoluteDetourLimit |
Durée | Temps de détour maximal autorisé entre la prise en charge et la livraison par rapport au trajet direct. | |
pickupToDeliveryRelativeDetourLimit |
nombre | Détour relatif maximal autorisé pour l'envoi (par exemple, une valeur de 2,0 signifie que la durée totale peut être au maximum deux fois supérieure à la durée de trajet direct). | |
pickupToDeliveryTimeLimit |
Durée | Durée maximale autorisée entre le début de la collecte et le début de la livraison. | |
shipmentType |
chaîne | Type de classification utilisé pour les règles d'incompatibilité et d'exigence. | |
VisitRequest(composant de pickups et deliveries dans Shipment) |
arrivalLocation |
object (LatLng) |
Emplacement géographique d'arrivée sous forme de coordonnées de latitude/longitude. |
arrivalWaypoint |
object (Waypoint) |
Lieu où le véhicule arrive pour effectuer la visite. Défini par des coordonnées ou un ID de lieu. | |
cost |
nombre | Coût encouru si cette demande de visite spécifique est sélectionnée par le solveur. | |
departureLocation |
object (LatLng) |
Coordonnées géographiques (latitude/longitude) du lieu de départ. | |
departureWaypoint |
object (Waypoint) |
Lieu où le véhicule repart après la visite. Si cette valeur est omise, elle est considérée comme identique à arrivalWaypoint. |
|
duration |
Durée | Durée de la visite (temps de service), par exemple, temps nécessaire pour charger/décharger. | |
label |
chaîne | Libellé défini par l'utilisateur pour cette demande de visite spécifique, renvoyé dans la réponse. | |
loadDemands |
map (key: string, value: Load) |
Exigences spécifiant la modification de la charge lors de cette visite (par exemple, -1 pour déposer un colis). | |
tags[] |
tableau de chaînes | Tags associés à cette demande de visite. Elles permettent de calculer les temps de trajet entre cette visite et d'autres à l'aide de transitionAttributes. |
|
timeWindows[] |
Tableau d'objets (TimeWindow) |
Les créneaux horaires autorisés pour l'arrivée à cette visite. | |
visitTypes[] |
tableau de chaînes | Chaînes décrivant le type de visite (par exemple, "delivery", "installation"). Utilisé pour appliquer extraVisitDurationForVisitType à partir du modèle de véhicule. |
|
Vehicle(Partie de ShipmentModel) |
breakRule |
object (BreakRule) |
Définit les règles pour les pauses (par exemple, la pause déjeuner obligatoire). |
costPerHour |
nombre | Coût par heure de la durée totale du trajet. | |
costPerKilometer |
nombre | Coût par kilomètre parcouru. | |
costPerTraveledHour |
nombre | Coût par heure lorsque le véhicule est en mouvement. | |
endLocation |
object (LatLng) |
Position géographique de fin sous forme de coordonnées de latitude/longitude. | |
endTags[] |
tableau de chaînes | Balises définissant l'état final du véhicule, utilisées pour les attributs de transition. | |
endTimeWindows[] |
Tableau d'objets (TimeWindow) |
Plages horaires autorisées pour que le véhicule termine son trajet. | |
endWaypoint |
object (Waypoint) |
Emplacement géographique de destination à l'aide d'un point de cheminement (coordonnées ou ID de lieu). | |
extraVisitDurationForVisitType |
map (clé: chaîne, valeur: Duration) | Ajoute une durée supplémentaire aux visites en fonction de leur visitType. |
|
fixedCost |
nombre | Coût fixe appliqué si le véhicule est utilisé, quelle que soit la distance ou la durée du trajet. | |
ignore |
booléen (true/false) |
Si la valeur est true, le véhicule est ignoré et n'est pas utilisé pour l'optimisation. |
|
label |
chaîne | Libellé défini par l'utilisateur pour le véhicule, renvoyé dans la réponse. | |
loadLimits |
map (key: string, value: LoadLimit) |
Capacités du véhicule (par exemple, poids maximal, volume maximal). | |
routeDistanceLimit |
object (DistanceLimit) |
Limite stricte ou souple de la distance totale de l'itinéraire du véhicule. | |
routeDurationLimit |
object (DurationLimit) |
Limite stricte ou souple de la durée totale de l'itinéraire du véhicule. | |
routeModifiers |
object (RouteModifiers) |
Une ou plusieurs contraintes, comme éviter les péages, les autoroutes ou les ferries. | |
startLocation |
object (LatLng) |
Position géographique de départ sous forme de coordonnées de latitude/longitude. | |
startTags[] |
tableau de chaînes | Balises définissant l'état de départ du véhicule, utilisées pour les attributs de transition. | |
startTimeWindows[] |
Tableau d'objets (TimeWindow) |
Plages horaires autorisées pour que le véhicule commence son itinéraire. | |
startWaypoint |
object (Waypoint) |
Point de départ géographique à l'aide d'un point de cheminement (coordonnées ou ID de lieu). | |
travelDurationLimit |
object (DurationLimit) |
Limite stricte ou souple de la durée totale du trajet du véhicule (hors temps d'attente/de service). | |
travelDurationMultiple |
nombre | Multiplicateur appliqué aux temps de trajet (par exemple, 1,5 : le trajet est 50 % plus lent). | |
travelMode |
enum (TravelMode) |
Mode de transport (par exemple, DRIVING, WALKING). Cela a une incidence sur les temps de trajet et les distances. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Définit l'ordre de déchargement (par exemple, LIFO ou LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
booléen (true/false) |
Si la valeur est true, le véhicule est considéré comme d'occasion, même sans expédition. Il entraîne des coûts fixes et se déplace entre ses lieux de départ et d'arrivée. |
Corps de la réponse
Le corps de la réponse inclut les éléments suivants, illustrés dans le schéma de droite et listés dans le tableau ci-dessous :
OptimizeToursResponse: objet de réponse de premier niveau contenant les itinéraires et les métriques optimisés.Metrics: statistiques globales sur les coûts et l'exécution de la solution.ShipmentRoute: séquence de visites et itinéraire attribués à un seul véhicule.Visit: arrêt sur un itinéraire pour effectuer un retrait ou une livraison.Transition: trajet et durée entre deux arrêts d'itinéraire.AggregatedMetrics: totaux cumulés pour la durée, la distance et d'autres métriques. Cet élément peut être présent dansMetricsetShipmentRoute.
| Parent | Paramètre | Type de propriété | Description |
|---|---|---|---|
OptimizeToursResponse |
metrics |
object (Metrics) |
Métriques agrégées pour la solution, y compris le coût total, la distance totale, la durée totale et le nombre d'utilisations du véhicule. |
requestLabel |
chaîne | Libellé copié à partir du champ label de la requête. Permet de corréler la réponse avec la demande d'origine. |
|
routes[] |
Tableau d'objets (ShipmentRoute) |
Liste des itinéraires calculés pour chaque véhicule. Contient une entrée pour chaque véhicule, quelle que soit son utilisation. | |
skippedShipments[] |
Tableau d'objets (SkippedShipment) |
Liste des envois ignorés (non traités), ainsi que les raisons pour lesquelles ils ont été ignorés. | |
validationErrors[] |
Tableau d'objets (OptimizeToursValidationError) |
Liste des erreurs de validation détectées dans le modèle d'entrée. Cette valeur est renseignée si solvingMode a été défini sur VALIDATE_ONLY ou si des erreurs se sont produites lors de la résolution. |
|
Metrics(Partie de OptimizeToursResponse) |
aggregatedRouteMetrics |
object (AggregatedMetrics) |
Statistiques agrégées pour tous les itinéraires, telles que la distance totale parcourue, la durée totale et les temps d'attente. |
costs |
map (key: string, value: number) | Répartition des coûts par type (par exemple, "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
earliestVehicleStartTime |
Temporel | Heure de début la plus ancienne parmi tous les véhicules utilisés. | |
latestVehicleEndTime |
Temporel | Heure de fin la plus récente parmi tous les véhicules utilisés. | |
skippedMandatoryShipmentCount |
entier | Nombre d'expéditions obligatoires ignorées. | |
totalCost |
nombre | Coût total de la solution, qui correspond à la somme de tous les coûts de trajet et des pénalités pour les expéditions ignorées. | |
usedVehicleCount |
entier | Nombre de véhicules utilisés dans la solution. | |
AggregatedMetrics(Partie de Metrics et ShipmentRoute) |
breakDuration |
Durée | Durée totale des pauses effectuées sur tous les itinéraires. |
costs |
map (key: string, value: number) | Répartition des coûts par type (par exemple, "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
delayDuration |
Durée | Durée totale du retard pour tous les itinéraires. | |
earliestVehicleStartTime |
Temporel | Heure de début la plus ancienne parmi tous les véhicules utilisés. | |
latestVehicleEndTime |
Temporel | Heure de fin la plus récente parmi tous les véhicules utilisés. | |
maxLoads |
map (key: string, value: VehicleLoad) |
Charge maximale transportée par un véhicule à un moment donné de la solution, classée par type de charge. | |
performedShipmentCount |
entier | Nombre total d'expéditions effectuées par tous les véhicules. | |
skippedMandatoryShipmentCount |
entier | Nombre d'expéditions obligatoires ignorées. | |
totalCost |
nombre | Coût total de la solution, qui correspond à la somme de tous les coûts de trajet et des pénalités pour les expéditions ignorées. | |
totalDuration |
Durée | Durée totale de tous les itinéraires (trajet + attente + retard + pause + visite). | |
travelDistanceMeters |
nombre | Distance totale parcourue en mètres sur tous les itinéraires. | |
travelDuration |
Durée | Durée totale du trajet pour tous les itinéraires. | |
usedVehicleCount |
entier | Nombre de véhicules utilisés dans la solution. | |
visitDuration |
Durée | Durée totale passée à effectuer des visites (chargement/déchargement) sur l'ensemble des itinéraires. | |
waitDuration |
Durée | Durée d'attente totale pour tous les itinéraires. | |
ShipmentRoute(Partie de OptimizeToursResponse) |
breaks[] |
Tableau d'objets (Break) |
Liste des pauses effectuées par le véhicule au cours de l'itinéraire. |
hasTrafficInfeasibilities |
booléen (true/false) |
Indique si la route présente des problèmes liés au trafic. | |
metrics |
object (AggregatedMetrics) |
Métriques spécifiques à cet itinéraire, telles que la distance et la durée totales parcourues. | |
routeCosts |
map (key: string, value: number) | Répartition des coûts pour cet itinéraire. Les clés sont des types de coûts (par exemple, "cost_per_hour"), et les valeurs sont les montants. | |
routePolyline |
object (EncodedPolyline) |
Polyligne encodée représentant le chemin complet de l'itinéraire sur le plan géographique. | |
routeTotalCost |
nombre | Coût total de l'itinéraire, somme de tous les coûts dans la carte routeCosts. |
|
transitions[] |
Tableau d'objets (Transition) |
Liste ordonnée des transitions (étapes du trajet) reliant les visites. | |
vehicleEndTime |
Temporel | Heure à laquelle le véhicule termine son trajet. | |
vehicleIndex |
entier | Index du véhicule dans la source ShipmentModel qui effectue cet itinéraire. |
|
vehicleLabel |
chaîne | Libellé du véhicule défini par l'utilisateur, copié à partir du modèle de requête. | |
vehicleStartTime |
Temporel | Heure à laquelle le véhicule commence son trajet. | |
visits[] |
Tableau d'objets (Visit) |
Séquence ordonnée des visites (collectes et livraisons) effectuées par le véhicule sur cet itinéraire. | |
Visit(Partie de ShipmentRoute) |
detour |
Durée | Temps de détour supplémentaire occasionné par cette visite par rapport au trajet direct entre les visites précédente et suivante. |
isPickup |
booléen (true/false) |
Si true, il s'agit d'un retrait. Si la valeur est "false", il s'agit d'une livraison. |
|
loadDemands |
map (key: string, value: Load) |
Demandes de chargement satisfaites par cette visite (par exemple, -1 pour une livraison). Il s'agit d'une copie des demandes de charge VisitRequest correspondantes. |
|
shipmentIndex |
entier | Index du champ Shipment dans le modèle source auquel cette visite est associée. |
|
shipmentLabel |
chaîne | Libellé de l'envoi, copié à partir de ShipmentModel. |
|
startTime |
Temporel | Heure à laquelle la visite doit commencer. | |
visitLabel |
chaîne | Libellé de la demande de visite, copié à partir de VisitRequest dans le modèle. |
|
visitRequestIndex |
entier | Index de VisitRequest dans la liste des enlèvements ou des livraisons de l'envoi auquel correspond cette visite. |
|
Transition(Partie de ShipmentRoute) |
breakDuration |
Durée | Durée des pauses prises pendant cette transition. |
delayDuration |
Durée | Durée du retard encouru lors de cette transition (par exemple, arriver en avance et attendre un créneau horaire). | |
routePolyline |
object (EncodedPolyline) |
Polyligne encodée représentant le chemin de cette transition spécifique. | |
routeToken |
chaîne | Jeton opaque pouvant être transmis au SDK Navigation de Google pour reconstruire l'itinéraire pendant la navigation. | |
startTime |
Temporel | Heure de début de cette transition. | |
totalDuration |
Durée | Durée totale de la transition, y compris les trajets, les temps d'attente, les pauses et les retards. | |
trafficInfoUnavailable |
booléen (true/false) |
Si la valeur est true, cela indique que les données de trafic n'étaient pas disponibles pour cette transition. |
|
travelDistanceMeters |
nombre | Distance parcourue pendant cette transition, en mètres. | |
travelDuration |
Durée | Durée du trajet pendant cette transition. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Charge transportée par le véhicule pendant cette transition, classée par type de charge (par exemple, "weight"). | |
waitDuration |
Durée | Durée d'attente avant que la prochaine visite puisse commencer. |