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 :
Ces tables de paramètres ne répertorient et ne décrivent que brièvement les objets de premier niveau et les paramètres principaux pour faciliter la découverte. 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 diagramme à 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 envois, 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) qui risque d'entraîner des interruptions 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 démarrer 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 true, les envois/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 des polylignes encodées pour les itinéraires. |
|
populateTransitionPolylines |
booléen (true/false) |
Si la valeur est true, renvoie des 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 l'ordre des visites. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (résultats rapides) ou CONSUME_ALL_AVAILABLE_TIME (meilleure qualité dans le délai imparti). |
|
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 ré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 emplacements. |
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 globale de l'itinéraire, du premier départ de véhicule à la dernière arrivée de véhicule. | |
globalEndTime |
Horodatage | Heure de fin la plus tardive pour tout événement du modèle. | |
globalStartTime |
Horodatage | Heure de début la plus précoce pour tout événement du modèle. | |
maxActiveVehicles |
entier | Nombre maximal de véhicules autorisés à être actifs dans la solution. | |
precedenceRules[] |
tableau d'objets (PrecedenceRule) |
Règles définissant les contraintes de commande entre des envois spécifiques. | |
shipments[] |
tableau d'objets (Shipment) |
Liste des envois à traiter. | |
shipmentTypeIncompatibilities[] |
tableau d'objets (ShipmentTypeIncompatibility) |
Règles empêchant que des envois de certains types soient pris en charge par le même véhicule. | |
shipmentTypeRequirements[] |
tableau d'objets (ShipmentTypeRequirement) |
Règles exigeant que les envois de certains types soient pris en charge par le même véhicule. | |
transitionAttributes[] |
tableau d'objets (TransitionAttributes) |
Spécifie les coûts, les retards et les limites de distance supplémentaires 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 (key: integer, value: number) | Coûts supplémentaires encourus si un véhicule spécifique prend en charge cet envoi. | |
costsPerVehicleIndices[] |
tableau d'entiers | Indices des véhicules auxquels les valeurs costsPerVehicle s'appliquent. |
|
deliveries[] |
tableau d'objets (VisitRequest) |
Alternatives pour la livraison. | |
ignore |
booléen (true/false) |
Si la valeur est true, l'envoi est ignoré et n'est pas utilisé dans 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 (poids, volume, etc.) pour transporter cet envoi. | |
penaltyCost |
nombre | Coût si la livraison n'est pas assurée. Si cette valeur n'est pas définie, l'envoi est obligatoire. | |
pickups[] |
tableau d'objets (VisitRequest) |
Alternatives pour récupérer le colis | |
pickupToDeliveryAbsoluteDetourLimit |
Durée | Temps de détour absolu 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 au temps de trajet direct). | |
pickupToDeliveryTimeLimit |
Durée | Durée maximale autorisée entre le début de l'enlèvement et le début de la livraison. | |
shipmentType |
chaîne | Classification de type utilisée pour les règles d'incompatibilité et d'exigence. | |
VisitRequest(composant de pickups et deliveries dans Shipment) |
arrivalLocation |
object (LatLng) |
Lieu d'arrivée géographique sous forme de coordonnées de latitude/longitude. |
arrivalWaypoint |
object (Waypoint) |
Emplacement 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 l'outil de résolution. | |
departureLocation |
object (LatLng) |
Lieu de départ géographique sous forme de coordonnées de latitude/longitude. | |
departureWaypoint |
object (Waypoint) |
Lieu d'où part le véhicule après avoir terminé la visite. Si cette valeur est omise, elle est considérée comme identique à arrivalWaypoint. |
|
duration |
Durée | La durée de la visite (temps de service), par exemple le 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) |
Demandes 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 sont utilisées pour calculer les temps de trajet entre cette visite et d'autres à l'aide de transitionAttributes. |
|
timeWindows[] |
tableau d'objets (TimeWindow) |
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, "livraison", "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, pause déjeuner obligatoire). |
costPerHour |
nombre | Coût par heure de la durée totale de l'itinéraire. | |
costPerKilometer |
nombre | Coût par kilomètre parcouru. | |
costPerTraveledHour |
nombre | Coût par heure lorsque le véhicule est en mouvement. | |
endLocation |
object (LatLng) |
Emplacement 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) |
Créneaux autorisés pour que le véhicule termine son itinéraire. | |
endWaypoint |
object (Waypoint) |
Emplacement géographique de fin à l'aide d'un point de cheminement (coordonnées ou ID de lieu). | |
extraVisitDurationForVisitType |
map (key: string, value: 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 de l'itinéraire. | |
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 des véhicules (par exemple, poids maximal, volume maximal). | |
routeDistanceLimit |
object (DistanceLimit) |
Limite stricte ou souple sur 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) |
Emplacement 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) |
Créneaux autorisés pour que le véhicule commence son itinéraire. | |
startWaypoint |
object (Waypoint) |
Emplacement géographique de départ à l'aide d'un point de cheminement (coordonnées ou ID de lieu). | |
travelDurationLimit |
object (DurationLimit) |
Limite stricte ou flexible de la durée totale du trajet (hors temps d'attente/de service) du véhicule. | |
travelDurationMultiple |
nombre | Multiplicateur appliqué aux temps de trajet (par exemple, 1,5 ralentit le trajet de 50 %). | |
travelMode |
enum (TravelMode) |
Le mode de transport (par exemple, DRIVING, WALKING). Il affecte 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 utilisé même sans chargements. Il entraîne des coûts fixes et se déplace entre ses points de départ et d'arrivée. |
Corps de la réponse
Le corps de la réponse inclut les éléments suivants, qui sont illustrés dans le diagramme 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: coût global et statistiques d'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: itinéraire et durée entre deux arrêts.AggregatedMetrics: somme des totaux pour la durée, la distance et d'autres métriques. Cet élément peut être présent à la fois 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. Utilisé pour mettre en corrélation la réponse avec la requête 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. Ce champ est renseigné 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 |
mappage (clé : chaîne, valeur : nombre) | Répartition des coûts par type (par exemple, "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
earliestVehicleStartTime |
Horodatage | Heure de début la plus précoce parmi tous les véhicules utilisés. | |
latestVehicleEndTime |
Horodatage | Heure de fin la plus tardive parmi tous les véhicules utilisés. | |
skippedMandatoryShipmentCount |
entier | Nombre d'envois obligatoires qui ont été ignorés. | |
totalCost |
nombre | Coût total de la solution, qui correspond à la somme de tous les coûts d'itinéraire et des pénalités pour les envois ignorés. | |
usedVehicleCount |
entier | Le nombre de véhicules utilisés dans la solution. | |
AggregatedMetrics(Partie de Metrics et ShipmentRoute) |
breakDuration |
Durée | Durée totale des pauses prises sur tous les itinéraires. |
costs |
mappage (clé : chaîne, valeur : nombre) | 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 sur tous les itinéraires. | |
earliestVehicleStartTime |
Horodatage | Heure de début la plus précoce parmi tous les véhicules utilisés. | |
latestVehicleEndTime |
Horodatage | Heure de fin la plus tardive parmi tous les véhicules utilisés. | |
maxLoads |
map (key: string, value: VehicleLoad) |
Charge maximale transportée par un véhicule à tout moment de la solution, indexée par type de charge. | |
performedShipmentCount |
entier | Nombre total d'envois effectués pour tous les véhicules. | |
skippedMandatoryShipmentCount |
entier | Nombre d'envois obligatoires qui ont été ignorés. | |
totalCost |
nombre | Coût total de la solution, qui correspond à la somme de tous les coûts d'itinéraire et des pénalités pour les envois ignorés. | |
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 tous les itinéraires. | |
waitDuration |
Durée | Durée d'attente totale sur tous les itinéraires. | |
ShipmentRoute(Partie de OptimizeToursResponse) |
breaks[] |
tableau d'objets (Break) |
Liste des pauses effectuées par le véhicule pendant l'itinéraire. |
hasTrafficInfeasibilities |
booléen (true/false) |
Indique si l'itinéraire présente des impossibilités liées au trafic. | |
metrics |
object (AggregatedMetrics) |
Métriques spécifiques à cet itinéraire, telles que la distance totale et la durée du trajet. | |
routeCosts |
mappage (clé : chaîne, valeur : nombre) | Détail 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 d'accès complet de l'itinéraire géographiquement. | |
routeTotalCost |
nombre | Coût total de l'itinéraire, somme de tous les coûts de la carte routeCosts. |
|
transitions[] |
tableau d'objets (Transition) |
Liste ordonnée de transitions (étapes de voyage) reliant les visites. | |
vehicleEndTime |
Horodatage | Heure à laquelle le véhicule termine son itinéraire. | |
vehicleIndex |
entier | Index du véhicule dans la requête ShipmentModel source qui effectue cet itinéraire. |
|
vehicleLabel |
chaîne | Libellé défini par l'utilisateur du véhicule, copié à partir du modèle de requête. | |
vehicleStartTime |
Horodatage | Heure à laquelle le véhicule commence son itinéraire. | |
visits[] |
tableau d'objets (Visit) |
Séquence ordonnée de visites (retraits 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 la visite précédente et la suivante. |
isPickup |
booléen (true/false) |
Si la valeur est true, cette visite est un retrait. Si la valeur est "false", il s'agit d'une livraison. |
|
loadDemands |
map (key: string, value: Load) |
Demandes de charge 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 que cette visite dessert. |
|
shipmentLabel |
chaîne | Libellé de l'envoi, copié à partir de ShipmentModel. |
|
startTime |
Horodatage | 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 l'objet VisitRequest dans la liste d'enlèvement ou de livraison de l'envoi auquel cette visite correspond. |
|
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, arrivée en avance et attente d'un créneau horaire). | |
routePolyline |
object (EncodedPolyline) |
Polyligne encodée représentant le chemin d'accès de cette transition spécifique. | |
routeToken |
chaîne | Jeton opaque pouvant être transmis au SDK Google Navigation pour reconstruire l'itinéraire pendant la navigation. | |
startTime |
Horodatage | Heure de début de cette transition. | |
totalDuration |
Durée | Durée totale de la transition, y compris le trajet, l'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, indexée par le type de charge (par exemple, "poids"). | |
waitDuration |
Durée | Durée d'attente avant que la visite suivante puisse commencer. |