Résoudre le problème de tournées des véhicules (Prêts à l'emploi)

Synthèse

Résout une tournée de véhicules afin de rechercher les meilleurs itinéraires pour une flotte de véhicules.

Un régulateur qui gère une flotte de véhicules a souvent besoin de prendre des décisions concernant l’itinéraire des véhicules. Ce type de décision implique d’attribuer au mieux un groupe de clients à une flotte de véhicules et d’ordonner et de programmer leurs visites. L’objectif du calcul de tournée de véhicules (VRP) est de fournir un niveau élevé de service au client en respectant toutes les fenêtres horaires et en réduisant le plus possible les coûts opérationnels et d’investissement globaux. Les contraintes consistent à terminer les itinéraires avec les ressources disponibles et dans les limites de temps imposées par les rotations des chauffeurs, les limitations de vitesse, et les engagements du client.

Ce service sert à trouver des solutions pour des tâches aussi complexes que la gestion des flottes.

Prenons un exemple de livraison de marchandises à des épiceries depuis un entrepôt central. Une flotte de trois camions est disponible à l’entrepôt. L’entrepôt ne fonctionne que pendant une plage horaire définie de 8 h 00 à 17 h 00, pendant laquelle tous les camions doivent rentrer à l’entrepôt. Chaque camion a une capacité de 7,5 tonnes, qui limite la quantité de marchandises qu’il peut transporter. Chaque point de vente a une demande concernant une quantité spécifique de marchandises (en livres) qui doit être livrée, ainsi que des fenêtres horaires limitant les moments où les livraisons peuvent être faites. Un chauffeur ne peut travailler que huit heures par jour, a besoin d’une pause déjeuner et il est rémunéré en fonction du temps passé à la conduite et à la livraison aux points de vente. L’objectif est de déterminer un itinéraire pour chaque chauffeur (ou itinéraire) qui permet d’effectuer les livraisons tout en respectant tous les besoins de service et en réduisant le temps total passé par le chauffeur sur chaque itinéraire. L’image ci-après illustre trois itinéraires obtenus par l’analyse de cet exemple de tournée de véhicules.

Héritage :
Ce service est obsolète.

Illustration

Résultats de l’analyse d’une tournée de véhicules

Utilisation

  • Le service Résoudre la tournée des véhicules génère des itinéraires pour des flottes de véhicules devant desservir de nombreux points de livraison, d’enlèvement ou d’intervention. Le service s’exécute en mode asynchrone et convient parfaitement aux tournées plus conséquentes dont l’analyse est plus longue.

  • Les outils figurant dans la boîte à outils Prêt à l’emploi sont des services de géotraitement ArcGIS Online qui utilisent les fonctionnalités d’analyse et les données hébergées de ArcGIS Online.

  • Vous pouvez inclure jusqu’à 2 000 ordres et 100 itinéraires. Vous pouvez en outre attribuer jusqu’à 200 ordres à un itinéraire.

  • Vous pouvez ajouter jusqu'à 250 interruptions ponctuelles. Vous pouvez ajouter autant d'interruptions linéaires ou surfaciques que vous voulez, mais les interruptions linéaires ne peuvent pas intersecter plus de 500 entités rues et les interruptions surfaciques ne peuvent pas intersecter plus de 2 000 entités.

  • Que le paramètre Utiliser la hiérarchie soit activé (Vrai) ou non, la hiérarchie est toujours utilisée lorsque la distance en ligne droite entre les ordres, dépôts ou ordres et dépôts est supérieure à 50 miles (80,46 kilomètres).

  • La distance en ligne droite entre des ordres ou des dépôts ne peut pas être supérieure à 27 miles (43,45 kilomètres) lorsque le Mode de trajet est défini sur Marche ou sur Personnalisé et que la restriction Marche est utilisée.

  • Si la distance entre un point en entrée et sa rue traversable la plus proche est supérieure à 12,42 miles (20 kilomètres), le point est exclu de l’analyse.

Paramètres

ÉtiquetteExplicationType de données
Ordres

Spécifie un ou plusieurs emplacements où les itinéraires de l’analyse VRP doivent se rendre. Un ordre peut représenter une livraison (livraison d’un meuble, par exemple), une collecte (navette d’aéroport collectant un passager, par exemple) ou tout autre type de service ou d’inspection (élagage d’arbres ou inspection d’un bâtiment, par exemple).

Vous pouvez définir les propriétés des ordres que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

Name

Nom de l’ordre. Le nom doit être unique. Si le nom n’est pas spécifié (champ vide), un nom est automatiquement généré pendant le processus de résolution.

Description

Informations décrivant l'ordre. Ce champ peut contenir toute information textuelle concernant l'ordre, sans restriction en matière d'unicité. Vous pouvez stocker l’identifiant d’un client dans le champ Name et son nom véritable ou son adresse dans le champ Description.

ServiceTime

Cette propriété indique le temps passé à la localisation de réseau traversée par l’itinéraire. Elle stocke donc la valeur d’impédance de la localisation de réseau. Une valeur zéro ou nulle indique que la localisation de réseau n’implique aucune durée de desserte.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Une fenêtre horaire n’indique que le moment auquel un véhicule peut arriver à un ordre, et non l’heure à laquelle la desserte doit être terminée. Pour tenir compte de la durée de la desserte et du départ avant la fin de la fenêtre horaire, vous devez soustraire la valeur ServiceTime du champ TimeWindowEnd1.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart1, possède une valeur horaire uniquement (8h00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L’utilisation de valeurs de date et d’heure (par exemple, 11/07/2010 8 h 00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

Lors de la résolution d'un problème couvrant plusieurs fuseaux horaires, les valeurs des fenêtres horaires de chaque ordre se rapportent au fuseau horaire dans lequel se trouve l'ordre.

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de fin.

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires sont non nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire a une heure de début mais aucune heure de fin. Cette situation est valide.

MaxViolationTime1

Une fenêtre horaire est considérée comme violée si l'heure d'arrivée survient après la fin de la fenêtre horaire. Ce champ spécifie l'infraction de temps maximale autorisée pour la première fenêtre horaire de l'ordre. Elle peut contenir une valeur de zéro, mais pas de valeurs négatives. La valeur zéro indique qu'une violation de fenêtre horaire à la première fenêtre horaire de l'ordre est inacceptable. La première fenêtre horaire est donc stricte. En revanche, une valeur nulle indique qu’il n’existe aucune limite en termes d’infraction de temps autorisée. Une valeur différente de zéro indique le retard maximal autorisé ; par exemple, un itinéraire peut arriver jusqu’à 30 minutes après la fin de sa première fenêtre horaire pour un ordre.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ de distance).

Les violations de fenêtre horaire peuvent être suivies et pondérées par le solveur. Vous pouvez faire en sorte que le solveur VRP procède comme suit :

  • réduire la durée totale de la violation sans tenir compte de l’augmentation du coût de trajet de la flotte ;
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer la durée totale de la violation et réduire à la place le coût de déplacement de la flotte.

En attribuant un degré d’importance au paramètre Time Window Violation Importance (Importance de violation de fenêtre horaire), vous choisissez de fait l’une de ces options. Dans tous les cas, le solveur renvoie une erreur si la valeur définie pour MaxViolationTime1 est dépassée.

MaxViolationTime2

Infraction maximale de temps autorisée pour la deuxième fenêtre horaire de l'ordre. Ce champ est identique au champ MaxViolationTime1.

InboundArriveTime

Définit le moment où l'élément à livrer à l'ordre sera prêt au dépôt de départ.

L'ordre peut être attribué à un itinéraire uniquement si l'heure d'arrivée entrante précède la valeur de la dernière heure de départ de l'itinéraire. Ainsi, l'itinéraire ne peut pas quitter le dépôt avant que l'élément ne soit prêt à y être chargé.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements entrants. Par exemple, supposons qu'une tâche d'un ordre nécessite des matériaux spéciaux qui ne sont actuellement pas disponibles au dépôt. Les matériaux sont expédiés d’un autre emplacement et arriveront au dépôt à 11 h 00. Pour veiller à ce qu'aucun itinéraire sortant ne soit affecté à l'ordre avant l’arrivée de la livraison, l’heure d’arrivée entrante de l’ordre est fixée à 11 h 00. Les matériaux spéciaux arrivent à 11 h 00, ils sont chargés sur le véhicule, et le véhicule quitte le dépôt pour visiter les ordres qui lui sont affectés.

Remarques :

  • L'heure de départ de l'itinéraire, qui inclut la durée de desserte, doit suivre l'heure d'arrivée entrante. Si un itinéraire commence avant l'heure d'arrivée entrante d'un ordre, ce dernier ne peut pas être attribué à l'itinéraire. L'attribution est incorrecte même si l'itinéraire a une durée de desserte au dépôt de départ qui dépasse l'heure d'arrivée entrante.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsque le champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte InboundArriveTime, quelle que soit la valeur DeliveryQuantities.

  • Si une heure de départ sortante est également précisée, sa valeur temporelle doit suivre l'heure d'arrivée entrante.

OutboundDepartTime

Définit le moment où l'élément à collecter à l'ordre doit arriver au dépôt d'arrivée.

L'ordre peut être attribué à un itinéraire uniquement si l'itinéraire peut parvenir à l'ordre et atteindre son dépôt final avant l'heure de départ sortante spécifiée.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements sortants. Par exemple, une société de transport envoie des camions de livraison pour collecter des colis aux différents ordres et les ramener dans un dépôt où ils sont transférés vers d'autres ressources, en route vers leur destination finale. A 15 h 00 chaque jour, un semi-remorque s'arrête au dépôt pour collecter les colis hautement prioritaires et les emmener directement dans un centre de traitement. Pour éviter que les colis hautement prioritaires ne soient retardés et doivent attendre jusqu'à 15 h 00 le jour suivant, la société de transport envoie des camions de livraison collecter les colis hautement prioritaires aux ordres et pour les amener au dépôt avant 15 h 00. Pour ce faire, l'heure de départ sortante doit être réglée sur 15 h 00.

Remarques :

  • L'heure d'arrivée de l'itinéraire, notamment la durée de desserte, doit précéder l'heure de départ sortante. Si un itinéraire parvient à un dépôt, mais qu'elle ne termine pas sa durée de desserte au dépôt final avant l'heure de départ sortante de l'ordre, l'ordre ne peut pas être attribué à l'itinéraire.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsqu'un champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte OutboundDepartTime, quelle que soit la valeur PickupQuantities.

  • Si une heure d'arrivée entrante est également précisée, sa valeur temporelle doit précéder l'heure de départ sortante.

DeliveryQuantities

Taille de la livraison. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les quantités de livraison sans préciser d’unités. Par exemple, si un objet pesant 150 kilos doit être livré à un ordre, entrez 150. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume d’une livraison de 1 000 kilos et 3 mètres cube, respectivement, entrez 1000 3. Là encore, vous devez vous souvenir des unités utilisées, à savoir les kilos et les mètres cube dans ce cas. Vous devez également mémoriser l’ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes.

Assurez-vous que Capacities pour Routes, DeliveryQuantities et PickupQuantities pour Orders sont spécifiés de la même manière. Les valeurs doivent être exprimées dans les mêmes unités. Si vous utilisez plusieurs dimensions, les dimensions doivent être répertoriées dans le même ordre pour tous les paramètres. Ainsi, si vous spécifiez le poids en kilos, puis le volume en mètres cube pour DeliveryQuantities, la capacité de vos itinéraires et les quantités d’enlèvement de vos ordres doivent être spécifiées de la même manière, à savoir poids en kilos, puis volume en mètres cube. Si vous combinez des unités ou modifiez l’ordre, vous obtiendrez des résultats indésirables sans affichage d’un message d’avertissement.

Une chaîne vide ou une valeur nulle signifie que toutes les dimensions sont infinies. Si la chaîne contient un nombre insuffisant de valeurs par rapport au nombre de capacités ou aux dimensions faisant l’objet d’un suivi, les valeurs restantes sont considérées comme infinies. Les quantités de livraison ne peuvent pas être négatives.

PickupQuantities

Taille de l'enlèvement. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume. En revanche, vous ne pouvez pas utiliser de valeurs négatives. Ce champ est identique au champ DeliveryQuantities de la classe Orders.

dans le cas d'une visite d'échange, un ordre peut avoir à la fois des quantités de livraison et de collecte.

Revenue

Chiffre d'affaires généré si l'ordre est inclus dans une solution. Ce champ peut contenir une valeur Null, qui indique un chiffre d'affaires égal à zéro, mais il ne peut pas contenir de valeur négative.

Les recettes sont comprises dans l’optimisation de la valeur de fonction objective, mais ne font pas partie du coût opérationnel de la solution. Autrement dit, le champ TotalCost des itinéraires n’inclut jamais les recettes dans sa sortie. Cependant, le chiffre d'affaires pondère l'importance relative de la desserte des ordres.

Les recettes sont comprises dans l’optimisation de la valeur de fonction objective, mais ne font pas partie du coût opérationnel de la solution. Autrement dit, le champ TotalCost dans la classe des itinéraires n’inclut jamais les recettes dans sa sortie. Cependant, le chiffre d'affaires pondère l'importance relative de la desserte des ordres.

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités requises pour l'ordre. Une valeur Null indique que l'ordre n'inclut pas de particularités.

L'orthographe des spécialités répertoriées dans les classes Ordres et Itinéraires doit correspondre pour que le solveur de tournées de véhicules puisse les associer entre elles.

Pour décrire les particularités et leur fonctionnement, prenons l'exemple d'une société d'entretien des pelouses et d'élagage dont une partie de ses ordres nécessite l'usage d'un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

AssignmentRule

Spécifie la règle d’attribution de l’ordre à un itinéraire. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Exclure) : l’ordre est exclu de l’opération de calcul qui s’ensuit.
  • 1 (Conserver la tournée et la séquence définie) : le solveur doit toujours attribuer l’ordre à l’itinéraire préétabli selon la séquence relative prédéfinie lors du calcul. Si cette règle d'attribution ne peut pas être respectée, une violation d'ordre s'ensuit. Avec ce paramètre, seule la séquence relative est conservée (mais pas la séquence absolue). Pour illustrer cela, prenons deux ordres, A et B. Leur valeur de séquence respective est 2 et 3. Si vous définissez les valeurs du champ AssignmentRule sur Conserver la tournée et la séquence relative, les valeurs de séquence de A et B peuvent changer une fois l’analyse terminée, car d’autres ordres, pauses et passages aux dépôts peuvent encore être insérés avant, entre ou après A et B. Toutefois, B ne peut pas survenir avant A.
  • 2 (Conserver la tournée) : le solveur doit toujours attribuer l'ordre à l'itinéraire préattribué lors du calcul. Une séquence valide doit aussi être définie, même si elle ne peut pas être conservée. Si l'ordre ne peut pas être attribué à l'itinéraire spécifié, une violation d'ordre s'ensuit.
  • 3 (Déroger) : le solveur tente de conserver l'itinéraire et de séquencer la préattribution de l'ordre lors du calcul. Mais un nouvel itinéraire ou une nouvelle séquence peut être attribuée à l'ordre si cela permet de réduire la valeur globale de la fonction objective. Il s’agit de la valeur par défaut.
  • 4 (Premier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en premier sur cet itinéraire pour limiter la valeur globale de la fonction objective.
  • 5 (Dernier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en dernier sur cet itinéraire pour limiter la valeur globale de la fonction objective.

Ce champ ne peut pas contenir une valeur Null.

CurbApproach

Spécifie la direction dans laquelle un véhicule peut atteindre et quitter le lieu de l’ordre. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter le lieu de l'ordre dans les deux directions, donc le demi-tour est autorisé. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau de l’ordre. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence à l’ordre d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : l'ordre doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu de l'ordre, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu de l'ordre, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons un ordre qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder l'ordre du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre un ordre sans laisser de voie de circulation entre le véhicule et l’ordre, vous choisissez 1 (Côté droit du véhicule) en France et aux États-Unis, mais 2 (Côté gauche du véhicule) au Royaume-Uni.

RouteName

Nom de l'itinéraire auquel l'ordre est attribué.

Ce champ est utilisé pour préattribuer un ordre à une tournée spécifique. Il peut contenir une valeur nulle indiquant que l’ordre n’est préattribué à aucun itinéraire et que le solveur détermine la meilleure attribution d’itinéraire possible pour l’ordre. Si sa valeur est définie sur nul, le champ Sequence doit aussi l’être.

Après un calcul, si l’ordre est visité, le champ RouteName contient le nom de l’itinéraire auquel l’ordre est attribué.

Sequence

Ce champ indique la séquence de l'ordre sur son itinéraire attribué.

Ce champ permet de spécifier la séquence relative d’un ordre sur l’itinéraire. Ce champ peut contenir une valeur Null qui spécifie que l'ordre peut être placé n'importe où le long de l'itinéraire. Une valeur nulle peut survenir seulement avec une valeur RouteName nulle.

Les valeurs de séquence en entrée sont positives et uniques pour chaque itinéraire (partagées par les passages aux dépôts de relais, les ordres et les pauses), mais elles n'ont pas besoin de commencer à 1 ou d'être contiguës.

Après une opération de résolution, le champ Sequence contient la valeur de séquence de l’ordre sur itinéraire qui lui est affecté. Les valeurs de séquence en sortie pour un itinéraire sont partagées entre les passages aux dépôts, les ordres et les pauses. Elles démarrent à 1 (au dépôt initial) et sont consécutives. La plus petite valeur de séquence en sortie possible pour un ordre visité est 2, car un itinéraire commence toujours à un dépôt.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
Dépôts

Spécifie un ou plusieurs dépôts pour la tournée de véhicules spécifiée. Un dépôt est un emplacement d'où part un véhicule au début de sa journée de travail et à laquelle il retourne à la fin de la journée. Les véhicules sont chargés (en cas de livraison) ou déchargés (en cas de collecte) aux dépôts. Dans certains cas, un dépôt peut aussi jouer le rôle d'emplacement de relais où un véhicule peut être déchargé ou rechargé avant de poursuivre les livraisons ou les collectes. Un dépôt possède des heures d’ouverture et de fermeture, spécifiées par une fenêtre horaire stricte. Les véhicules ne peuvent pas arriver à un dépôt en dehors de cette fenêtre horaire.

Vous pouvez définir les propriétés des dépôts que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

Name

Nom du dépôt. Les champs StartDepotName et EndDepotName du jeu des itinéraires font référence aux noms que vous spécifiez ici. Le nom du dépôt est également référencé par le relais de tournée lorsque ce dernier est utilisé.

Les noms de dépôts peuvent être saisis indifféremment en majuscules ou en minuscules, mais ne doivent pas être non vides, ni uniques.

Description

Informations descriptives concernant l’emplacement du dépôt. Ce champ peut contenir toute information textuelle, sans restriction en matière d'unicité.

Si, par exemple, vous voulez noter la région dans laquelle se trouve un dépôt ou encore l’adresse et le numéro de téléphone du dépôt, vous pouvez saisir ces informations ici, plutôt que dans le champ Name.

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart1, possède une valeur horaire uniquement (8h00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L’utilisation de valeurs de date et d’heure (par exemple, 11/07/2010 8 h 00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

Lors de la résolution d'un problème couvrant plusieurs fuseaux horaires, les valeurs des fenêtres horaires de chaque dépôt se rapportent au fuseau horaire dans lequel se trouve le dépôt.

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de fin.

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires ne sont pas nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire a une heure de début mais aucune heure de fin. Cette situation est valide.

CurbApproach

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter le lieu du dépôt dans les deux directions, donc le demi-tour est autorisé. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau du dépôt. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence au dépôt d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : le dépôt doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu du dépôt, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu du dépôt, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons un dépôt qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder un dépôt du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre un dépôt sans laisser de voie de circulation entre le véhicule et le dépôt, vous choisissez 1 (Côté droit du véhicule) en France et aux États-Unis, mais 2 (Côté gauche du véhicule) au Royaume-Uni.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
Itinéraires

Spécifie un ou plusieurs itinéraires décrivant les caractéristiques d’un véhicule et d’un chauffeur. Un itinéraire peut être défini par des temps de service aux dépôts initial et final, une heure de début fixe ou souple, des coûts opérationnels basés sur le temps ou sur la distances, de nombreuses capacités, diverses contraintes sur la journée de travail d’un chauffeur, etc.

Vous pouvez spécifier les itinéraires avec les attributs suivants :

Name

Nom de l’itinéraire. Le nom doit être unique.

L'outil génère un nom au moment du calcul si la valeur de champ est Null ; par conséquent, la saisie d'une valeur est facultative dans la plupart des cas. Toutefois, vous devez obligatoirement entrer un nom si votre analyse inclut des pauses, des relais de tournée, des zones de tournée ou des ordres qui sont préattribués à un itinéraire, car le nom de l'itinéraire est utilisé comme clé étrangère dans ces circonstances. Les noms d’itinéraire ne sont pas sensibles à la casse.

StartDepotName

Nom du dépôt initial de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

Si la valeur de StartDepotName est nulle, l’itinéraire commence au premier ordre affecté. Omettre le dépôt initial est utile lorsque le point de départ du véhicule est inconnu ou sans rapport à votre problème. Cependant, si la valeur de StartDepotName est nulle, EndDepotName ne peut pas l’être.

Les dépôts de départ virtuels ne sont pas autorisés si les ordres ou les dépôts se situent dans plusieurs fuseaux horaires.

Si des livraisons sont prévues le long de l’itinéraire et que la valeur de StartDepotName est Null, la cargaison est supposée avoir été chargée sur le véhicule à un dépôt virtuel avant le début de l’itinéraire. Dans le cas d’un itinéraire sans passage à des relais, les ordres de livraison (ceux dont les valeurs DeliveryQuantities sont différentes de zéro dans Orders) sont chargés au dépôt initial ou au dépôt virtuel. Pour un itinéraire doté de passages à des relais, seuls les ordres de livraison avant le premier passage à un relais sont chargés au dépôt initial ou au dépôt virtuel.

EndDepotName

Nom du dépôt final de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

StartDepotServiceTime

Durée de desserte au dépôt initial. Cette valeur peut servir à modéliser le temps passé à charger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ temporel).

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (fournies par les valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les périodes de service au dépôt peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer vos propres estimations de temps.

EndDepotServiceTime

Durée de desserte au dépôt final. Cette valeur peut servir à modéliser le temps passé à décharger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ temporel).

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (fournies par les valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les périodes de service au dépôt peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer vos propres estimations de temps.

EarliestStartTime

Première heure de début admissible pour l'itinéraire. Ce champ est utilisé par le solveur conjointement avec la fenêtre horaire du dépôt initial pour déterminer des heures de départ d'itinéraire faisables.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 8 h 00. La valeur par défaut est interprétée comme 8 h 00 à la date par défaut établie pour l’analyse.

Lors de la résolution d’un problème couvrant plusieurs fuseaux horaires, le fuseau horaire pour EarliestStartTime est le même que celui dans lequel se trouve le dépôt de départ.

LatestStartTime

Dernière heure de début admissible pour l’itinéraire.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 10:00 AM. La valeur par défaut est interprétée comme 10 h 00 à la date par défaut établie pour l’analyse.

Lors de la résolution d’un problème couvrant plusieurs fuseaux horaires, le fuseau horaire pour LatestStartTime est le même que celui dans lequel se trouve le dépôt de départ.

ArriveDepartDelay

Ce champ enregistre le temps de trajet nécessaire pour accélérer le véhicule à des vitesses de déplacement normales, le décélérer à un arrêt et le retirer du réseau et l'y replacer (entrée et sortie d'un parking, par exemple). Si vous incluez une valeur ArriveDepartDelay, le solveur de tournées de véhicules est dissuadé d’envoyer de nombreux itinéraires pour traiter physiquement des ordres coïncidents.

Le coût de cette propriété est supporté entre des visites à des dépôts, des relais de tournée et des ordres non coïncidents. Par exemple, lorsqu'un itinéraire commence à un dépôt et visite le premier ordre, le retard d'arrivée/de départ total est ajouté au temps de trajet. Cela est également valable pour le déplacement du premier ordre au deuxième ordre. Si les deuxième et troisième ordres coïncident, la valeur de ArriveDepartDelay n’est pas ajoutée entre eux, car le véhicule n’a pas besoin de se déplacer. Si l'itinéraire mène à un relais de tournée, la valeur est de nouveau ajoutée au temps de trajet.

Même si un véhicule doit ralentir et s’arrêter pendant une pause et accélérer par la suite, le solveur de tournées de véhicules ne peut pas ajouter la valeur ArriveDepartDelay aux pauses. Cela signifie que si un itinéraire quitte un ordre, effectue une pause et continue jusqu'à l'ordre suivant, le retard d'arrivée/de départ est ajouté une seule fois, et non deux.

Prenons l’exemple de cinq ordres coïncidents dans une très haute tour, desservis par trois itinéraires différents. Trois retards d’arrivée/de départ sont alors concernés, car trois chauffeurs doivent trouver chacun une place de parking et entrer dans le même bâtiment. Si toutefois les ordres peuvent être desservis par un seul itinéraire au lieu de trois, un seul chauffeur doit se garer et pénétrer dans le bâtiment (un seul retard d’arrivée/de départ est engendré). Comme le solveur de tournées de véhicules essaie de réduire le coût, il tentera de limiter les retards d’arrivée/de départ et choisira donc l’option à un seul itinéraire. (Notez que plusieurs itinéraires peuvent être envoyés lorsque d'autres contraintes, comme des particularités, des fenêtres horaires ou des capacités, l'exigent.)

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

Capacities

Capacité maximale du véhicule. Vous pouvez spécifier une capacité de n’importe quelle dimension, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les capacités sans préciser d’unités. Si, par exemple, votre véhicule peut transporter 40 000 kilos, entrez 40000. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume d’une livraison de 1 000 kilos et 3 mètres cube, respectivement, entrez 1000 3. Là encore, vous devez vous souvenir des unités utilisées, à savoir les kilos et les mètres cube dans ce cas. Vous devez également mémoriser l’ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes.

Il est important de mémoriser les unités et l’ordre dans lequel vous les saisissez pour deux raisons : primo, pour pouvoir réinterpréter les informations ultérieurement et secundo, pour saisir correctement les valeurs dans les champs DeliveryQuantities et PickupQuantities des ordres. Notez que le solveur de tournées de véhicules traite simultanément les champs Capacities, DeliveryQuantities, et PickupQuantities pour éviter toute surcharge. Les unités ne peuvent pas être saisies dans le champ et l’outil VRP ne peut pas faire de conversion des unités. Vous devez saisir les valeurs pour les trois champs à l’aide des mêmes unités et le même ordre d’unités pour garantir que les valeurs sont interprétés de manière appropriée. Si vous combinez des unités ou modifiez l’ordre dans l’un des trois champs, des résultats indésirables s’affichent sans message d’avertissement. Il est recommandé de prédéfinir des unités et l’ordre dans lequel les saisir pour pouvoir vous y référer à tout moment lorsque vous entrez des valeurs dans ces trois champs.

Une chaîne vide ou une valeur Null représente l'infini. Les valeurs de capacité ne peuvent pas être négatives.

Si le champ Capacities contient un nombre insuffisant de valeurs par rapport aux champs DeliveryQuantities ou PickupQuantities de la classe des ordres, les valeurs restantes sont traitées comme étant infinies.

Le solveur de tournées de véhicules effectue un test booléen simple pour déterminer si les capacités sont dépassées. Si la valeur de capacité d'un itinéraire est supérieure ou égale à la quantité totale transportée, le solveur de tournées de véhicules suppose que la cargaison tient dans le véhicule. Cela peut toutefois s'avérer inexact, en fonction de la forme réelle de la cargaison et du véhicule. Par exemple, le solveur de tournées de véhicules autorise une sphère de 30 mètres cube dans un camion de 30 mètres cube qui mesure 2,40 mètres de large. Mais en réalité, comme la sphère mesure 3,85 mètres de diamètre, elle ne peut pas passer dans ce camion de 2,40 mètres de large.

FixedCost

Coût monétaire fixe encouru seulement si l'itinéraire est utilisé dans une solution (autrement dit, si des ordres lui sont attribués). Ce champ peut contenir des valeurs Null, ce qui indique un coût fixe de zéro. Ce coût fait partie du coût de fonctionnement total de l'itinéraire.

CostPerUnitTime

Coût monétaire encouru (par unité de temps de travail) pour la durée totale de l'itinéraire, y compris les temps de trajet, ainsi que le temps de service et le temps d'attente aux ordres, aux dépôts et les pauses. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 1.0.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

CostPerUnitDistance

Coût monétaire encouru (par unité de distance parcourue) pour la longueur de l'itinéraire (distance de trajet totale). Ce champ peut contenir des valeurs Null, ce qui indique un coût de zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre distance_units.

OvertimeStartTime

Durée du temps de travail standard, avant le calcul des heures supplémentaires. Ce champ peut contenir des valeurs Null, ce qui indique que les heures supplémentaires ne s'appliquent pas.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

Si, par exemple, le chauffeur doit percevoir lorsque la durée totale de la tournée dépasse huit heures, la valeur OvertimeStartTime est alors 480 (8 heures * 60 minutes/heure), si les unités de temps sont en exprimées en minutes.

CostPerUnitOvertime

Coût monétaire encouru par unité de temps d'heures supplémentaires. Ce champ peut contenir des valeurs nulles, ce qui indique que la valeur de CostPerUnitOvertime est la même que celle de CostPerUnitTime.

MaxOrderCount

Nombre maximal d'ordres autorisé sur l'itinéraire. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 30.

MaxTotalTime

Durée d'itinéraire maximale autorisée. La durée de l'itinéraire englobe le temps de trajet ainsi que la durée de desserte et le temps d'attente aux ordres, aux dépôts et les pauses. Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la durée de la tournée.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTotalTravelTime

Temps de trajet maximal admissible pour l'itinéraire. Le temps de trajet inclut uniquement le temps passé au volant sur le réseau, à l’exclusion de la durée de desserte ou du temps d’attente.

Ce champ peut contenir des valeurs nulles, ce qui indique qu’aucune contrainte n’est présente sur le temps de trajet maximal autorisé. La valeur de ce champ ne peut pas être supérieure à celle du champ MaxTotalTime.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTotalDistance

Distance de trajet maximale admissible pour l'itinéraire.

L’unité de cette valeur de champ est spécifiée par le paramètre distance_units.

Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la distance de trajet maximale autorisée.

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités requises pour l'ordre. Une valeur Null indique que l'ordre n'inclut pas de particularités.

L'orthographe des spécialités répertoriées dans les classes Ordres et Itinéraires doit correspondre pour que le solveur de tournées de véhicules puisse les associer entre elles.

Pour décrire les particularités et leur fonctionnement, prenons l'exemple d'une société d'entretien des pelouses et d'élagage dont une partie de ses ordres nécessite l'usage d'un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

AssignmentRule

Spécifie la règle d’attribution de l’ordre à un itinéraire. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

Ce champ ne peut pas contenir une valeur Null.

  • 1 (Inclure) : l'itinéraire est inclus dans l'analyse. Il s’agit de la valeur par défaut.
  • 2 (Exclure) : l'itinéraire est exclu de l'analyse.

Record Set
Interruptions

On compte les périodes de repos, ou pauses, pour les itinéraires d'une tournée de véhicules spécifiée. Une pause est précisément associée à un itinéraire et peut être prise une fois un ordre terminé, en cours de route vers un ordre ou avant de desservir un ordre. Elle possède une heure de début et une durée, pendant laquelle le chauffeur peut être rémunéré ou pas. Vous disposez de trois options pour définir le début d’une pause : en utilisant une fenêtre horaire, un temps de trajet maximal ou un temps de travail maximal.

Les interruptions des fenêtres horaires ne sont pas autorisées si les ordres ou dépôts sont dans plusieurs fuseaux horaires, sauf si les heures sont au format UTC.

Vous pouvez définir les propriétés des interruptions que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

RouteName

Nom de l’itinéraire auquel l’interruption s’applique. Même si une pause est précisément affectée à un itinéraire, de nombreuses pauses peuvent être affectées à un même itinéraire.

Ce champ, qui est une clé étrangère du champ Name dans les itinéraires, ne peut pas contenir de valeur nulle.

Precedence

Les valeurs de Precedence permettent de classer les pauses d'un itinéraire donné. Les pauses ayant une valeur de priorité de 1 interviennent avant celles dont la valeur est 2, et ainsi de suite.

Toutes les pauses doivent avoir une valeur de précédence, que ce soient des pauses en fonction d'une fenêtre horaire, d'un temps de trajet maximal ou d'un temps de travail maximal.

ServiceTime

Durée de la pause. Ce champ ne peut pas contenir de valeurs nulles. La valeur par défaut est 60.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

TimeWindowStart

Heure de début de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, les valeurs des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nulles. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

Une erreur est renvoyée au moment du calcul si leurs fenêtres horaires d'un itinéraire qui possède plusieurs pauses se chevauchent.

Les champs de fenêtres horaires dans les interruptions peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart, contient une valeur d’heure uniquement (24h00, par exemple), nous supposons que la date est celle spécifiée par le paramètre Date par défaut (default_date dans Python). L’utilisation de valeurs de date et d’heure (le 11/07/2012 à 24 h 00, par exemple) vous permet de spécifier des fenêtres horaires qui couvrent deux jours ou plus. Cela s’avère utile lorsqu’une pause doit être prise avant et après minuit.

TimeWindowEnd

Heure de fin de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nuls. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

MaxViolationTime

Ce champ indique la durée de violation maximale autorisée pour une pause en fonction d'une fenêtre horaire. Une fenêtre horaire fait l'objet d'une violation lorsque l'heure d'arrivée ne coïncide pas avec la plage horaire.

Une valeur égale à zéro indique que la fenêtre horaire ne peut pas faire l’objet d’une violation ; cela signifie que la fenêtre horaire est stricte. Une valeur différente de zéro précise le retard maximal autorisé. Par exemple, la pause peut commencer jusqu’à 30 minutes après la fin de sa fenêtre horaire, mais le retard est pénalisé conformément au paramètre d’importance de la violation de fenêtre horaire.

Cette propriété peut être nulle. Une valeur nulle avec les valeurs TimeWindowStart et TimeWindowEnd indique que la durée de violation autorisée n’est pas limitée. Si MaxTravelTimeBetweenBreaks ou MaxCumulWorkTime possède une valeur, la valeur de MaxViolationTime doit être nulle.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTravelTimeBetweenBreaks

Temps de trajet maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de trajet est cumulé à partir de la fin de la pause précédente ou, si aucune pause n'a encore été prise, à partir du début de l'itinéraire.

S’il s’agit de la dernière pause de l’itinéraire, MaxTravelTimeBetweenBreaks indique également le temps de trajet maximal pouvant être cumulé de la dernière pause jusqu’au dépôt final.

Ce champ est conçu pour limiter le temps de conduite d’une personne avant une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur minutes et si MaxTravelTimeBetweenBreaks a pour valeur 120, le chauffeur pourra prendre une pause au bout de deux heures de conduite. Pour offrir une deuxième pause au bout de deux autres heures de conduite, la propriété MaxTravelTimeBetweenBreaks de cette deuxième pause doit avoir pour valeur 120.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxCumulWorkTime doit être nulle pour pouvoir calculer correctement une analyse.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxCumulWorkTime

Temps de travail maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de travail est toujours cumulé à partir du début de l'itinéraire.

Le temps de travail correspond à la somme du temps de trajet et de la durée de desserte aux ordres, dépôts et pendant les pauses. Notez toutefois que le temps d'attente en est exclu, à savoir le temps passé par un itinéraire (ou un chauffeur) à attendre qu'une fenêtre horaire ne commence à un ordre ou à un dépôt.

Ce champ limite le temps de travail d’une personne avant une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur minutes, MaxCumulWorkTime a pour valeur 120 et ServiceTime 15, le chauffeur pourra prendre une pause de 15 minutes au bout de deux heures de travail.

Reprenons le dernier exemple et partons du principe qu'une deuxième pause s'avère nécessaire au bout de trois autres heures de travail. Pour spécifier cette pause, vous affecteriez la valeur 315 (cinq heures et 15 minutes) à la propriété MaxCumulWorkTime de la deuxième pause. Ce nombre comprend les valeurs de MaxCumulWorkTime et ServiceTime de la pause précédente, ainsi que les trois heures de temps de travail supplémentaires avant d’accorder la deuxième pause. Pour éviter de prendre prématurément des pauses en fonction d'un temps de travail maximal, n'oubliez pas qu'elles cumulent le temps de travail à partir du début de l'itinéraire et que ce temps de travail comprend le temps de service aux précédents dépôts et ordres et pendant les précédentes pauses.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxTravelTimeBetweenBreaks doit être nulle pour pouvoir calculer correctement une analyse.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

IsPaid

Valeur booléenne indiquant si la pause est payée ou non. Définir ce champ sur 1 indique que le temps consacré à la pause est inclus dans le calcul de coût d’itinéraire et la détermination des heures supplémentaires. La valeur 0 indique le contraire. La valeur par défaut est 1.

Sequence

Indique la séquence de la pause sur son itinéraire. Ce champ peut contenir des valeurs nulles, qui ont pour effet de sélectionner la séquence de pauses par le solveur. Les valeurs de séquence en entrée sont spécifiées ; elles doivent être positives et uniques pour chaque itinéraire (partagées par les passages aux dépôts de relais, les ordres et les pauses), mais elles n’ont pas besoin de commencer à 1 ni d’être contiguës.

Record Set
Unités de temps

Unités de temps pour toutes les valeurs de champ basées sur le temps dans l'analyse. Nombre d’entités et d’enregistrements d’une analyse VRP ont des champs qui permettent de stocker des valeurs de temps, comme ServiceTime pour les ordres et CostPerUnitTime pour les itinéraires. Pour optimiser la saisie des données, ces valeurs de champ n’incluent pas d’unités. Toutes les valeurs de champ basées sur une distance doivent être entrées dans les mêmes unités, et ce paramètre sert à spécifier les unités de ces valeurs.

Notez que les champs temporels en sortie utilisent les mêmes unités que celles spécifiées par ce paramètre.

  • SecondesL’unité temporelle est définie en secondes.
  • MinutesL’unité temporelle est définie en minutes.
  • HeuresL’unité temporelle est définie en heures.
  • JoursL’unité temporelle est définie en jours.
String
Unités de distance

Unités de distance pour toutes les valeurs de champ basées sur une distance dans l'analyse. Nombre d’entités et d’enregistrements d’une analyse VRP ont des champs qui permettent de stocker des valeurs de distance, comme MaxTotalDistance et CostPerUnitDistance pour les itinéraires. Pour optimiser la saisie des données, ces valeurs de champ n’incluent pas d’unités. Toutes les valeurs de champ basées sur une distance doivent être entrées dans les mêmes unités, et ce paramètre sert à spécifier les unités de ces valeurs.

Notez que les champs de distance en sortie utilisent les mêmes unités que celles spécifiées par ce paramètre.

  • MètresL’unité linéaire est exprimée en mètres.
  • KilomètresL’unité linéaire est exprimée en kilomètres.
  • PiedsL’unité linéaire est exprimée en pieds.
  • YardsL’unité linéaire est exprimée en yards.
  • MilesL’unité linéaire est exprimée en miles.
  • Milles nautiquesL’unité linéaire est exprimée en milles nautiques.
String
Région d’analyse
(Facultatif)

Région dans laquelle l’analyse sera effectuée. Si aucune valeur n’est spécifiée pour ce paramètre, l’outil calcule automatiquement le nom de la région en fonction de l’emplacement des points en entrée. Le nom de la région ne doit être défini que si la détection automatique du nom de région n’est pas pertinente pour les entrées.

Pour indiquer une région, utilisez l’une des valeurs suivantes :

  • EuropeLa région d’analyse sera l’Europe.
  • JapanLa région d’analyse sera le Japon.
  • CoréeLa région d’analyse sera la Corée.
  • Moyen-Orient et AfriqueLa région d’analyse sera le Moyen-Orient et l’Afrique.
  • Amérique du NordLa région d’analyse sera l’Amérique du Nord.
  • Amérique du SudLa région d’analyse sera l’Amérique du Sud.
  • Asie du SudLa région d’analyse sera l’Asie du Sud.
  • ThaïlandeLa région d’analyse sera la Thaïlande.
Héritage :

Les noms des régions suivantes ne sont plus pris en charge et seront retirés dans une version ultérieure. Si vous spécifiez l’un des noms des régions obsolètes, l’outil lui attribue automatiquement un nom de région pris en charge.

  • Grèce est remplacé par Europe
  • Inde est remplacé par Asie du Sud-Est
  • Océanie est remplacé par Asie du Sud-Est
  • Asie du Sud-Est est remplacé par Asie du Sud-Est
  • Taïwan est remplacé par Asie du Sud-Est

String
Date par défaut
(Facultatif)

Date par défaut pour les valeurs de champs temporels qui spécifient un heure de la journée sans inclure de date. Vous pouvez trouver ces champs temporels dans différents paramètres en entrée, tels que les attributs ServiceTime des paramètres Ordres et Pauses.

Date
Demi-tours aux jonctions
(Facultatif)

Précise s’il convient d’empêcher ou d’autoriser la zone de desserte à réaliser des demi-tours aux jonctions. La terminologie suivante permet de mieux comprendre les valeurs des paramètres : une jonction est un point où un segment de rue se termine et se connecte potentiellement à un ou plusieurs autres segments. Une pseudo-jonction est un point où exactement deux rues se connectent. Une intersection est un point où trois rues ou plus se connectent. Une voie sans issue est un endroit où un segment de rue se termine sans se connecter à aucun autre.

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Mode de déplacement est défini sur Personnalisé, qui est la valeur par défaut.

  • Autoriser les demi-toursLes demi-tours sont autorisés partout. L'autorisation des demi-tours implique que le véhicule peut faire demi-tour au niveau de n'importe quelle jonction et repasser par la même rue. Il s’agit de la valeur par défaut.
  • Pas de demi-toursLes demi-tours sont interdits à toutes les jonctions (pseudo-jonctions, intersections et voies sans issue). Notez toutefois que des demi-tours peuvent être autorisés même si cette option est choisie. Pour empêcher les demi-tours au niveau des incidents et des ressources, définissez la valeur de champ CurbApproach de façon à interdire les demi-tours.
  • Autoriser les voies sans issue uniquementLes demi-tours sont interdits au niveau de toutes les jonctions, sauf celles ayant une seule entité rue connectée (voie sans issue).
  • Autoriser les voies sans issue et les intersections uniquementLes demi-tours sont interdits aux pseudo-jonctions où deux rues adjacentes se rencontrent, mais sont autorisés aux intersections et dans les voies sans issue. Ceci empêche les manœuvres au milieu de la route lorsqu’une longueur de route est numérisée sous forme de deux entités rues.
String
Facteur de fenêtre horaire
(Facultatif)

Spécifie l’importance de respecter les fenêtres horaires.

  • ElevéeL’importance est placée sur le respect de l’heure d’arrivée aux arrêts plutôt qu’à la réduction du temps de conduite. C’est par exemple l’option choisie par les organisations qui doivent impérativement respecter l’heure de livraison ou qui placent le service clientèle au rang de leurs principales préoccupations.
  • MoyenneL’importance est équilibrée entre la réduction du temps de conduite et le respect de l’heure d’arrivée. Il s’agit de la valeur par défaut.
  • FaibleL’importance est placée sur la réduction du temps de conduite plutôt qu’au respect de l’heure d’arrivée aux arrêts. Vous pouvez utiliser ce paramètre si vous avez un retard croissant de traitement des demandes de service. Si vous souhaitez répondre à un plus grand nombre de commandes au cours d’une journée ou rattraper un retard, vous pouvez utiliser cette option même si les clients risquent d’être gênés par votre arrivée tardive.
String
Grouper les itinéraires spatialement
(Facultatif)

Précise si les itinéraires seront regroupés spatialement.

  • CLUSTER (True) : des points d’origine dynamiques sont automatiquement créés pour tous les itinéraires et les ordres attribués à un itinéraire particulier sont spatialement agrégés. L'agrégation des ordres permet de regrouper les tournées dans des zones plus petites et de réduire le nombre d'intersections entre différentes lignes d'itinéraires, mais elle a également tendance à augmenter le temps de trajet total.
  • NO_CLUSTER (False) : aucun point d’origine dynamique n’est créé. Choisissez cette option si des zones de tournée sont spécifiées.

Boolean
Zones de tournées
(Facultatif)

Délimite les territoires de travail pour des itinéraires donnés. Une zone de tournée est une entité surfacique utilisée pour contraindre des itinéraires à traiter uniquement les ordres se trouvant dans la zone spécifiée ou s’en approchant. Les exemples suivants sont des cas dans lesquels les zones de tournée peuvent être utiles :

  • Certains de vos employés n’ont pas les permis nécessaires pour travailler dans certaines régions ou communautés. Vous pouvez créer une zone de tournée stricte pour qu’ils ne visitent des ordres que dans des zones où ils remplissent les conditions requises.
  • L’un de vos véhicules tombe souvent en panne et vous souhaitez réduire le temps de réponse en faisant en sorte qu’il ne visite que les ordres proches de votre garage. Vous pouvez créer une zone de tournée souple ou stricte pour faire en sorte que le véhicule reste proche.

Lorsque vous précisez les Zones de tournées, vous pouvez définir les propriétés pour chacune, comme leur nom, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

RouteName

Nom de l'itinéraire auquel cette zone s'applique. Une zone de tournée peut avoir un itinéraire associé au maximum. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

IsHardZone

Valeur booléenne indiquant une zone de tournée stricte ou souple. Une valeur True indique que la zone de tournée est stricte, c'est-à-dire qu'un ordre se trouvant en dehors du polygone de zone de tournée ne peut pas être attribué à l'itinéraire. La valeur par défaut est 1 (True). Une valeur False (0) indique que ces ordres peuvent encore être attribués, mais que leur coût de desserte est pondéré par une fonction basée sur la distance euclidienne depuis la zone de tournée. Cela signifie qu'à mesure que la distance en ligne droite entre la zone souple et l'ordre augmente, la probabilité que l'ordre soit attribué à l'itinéraire décroît.

Feature Set
Relais de tournée
(Facultatif)

Indique les dépôts intermédiaires que les itinéraires peuvent visiter pour recharger ou décharger la cargaison qu’ils livrent ou collectent. Un relais de tournée relie spécifiquement un itinéraire à un dépôt. La relation indique que l'itinéraire peut passer à un relais (pour recharger ou décharger en cours de route) au dépôt associé.

Les relais de tournée peuvent permettre de modéliser des scénarios dans lesquels un véhicule enlève une cargaison complète de livraisons au dépôt initial, dessert les ordres, retourne au dépôt pour renouveler sa charge de livraisons et continue à desservir d’autres ordres. Par exemple, dans le cas d’une livraison de gaz propane, le véhicule peut effectuer plusieurs livraisons jusqu’à ce que sa cuve soit presque vide, visiter un point de ravitaillement, puis poursuivre ses livraisons.

Voici quelques règles et options à prendre en compte :

  • Le point de rechargement/déchargement, ou la localisation de relais, peut être différent du dépôt initial ou final.
  • Chaque itinéraire peut avoir une ou plusieurs localisations de relais.
  • Une localisation de relais peut être utilisée plusieurs fois par un même itinéraire.
  • Lorsque plusieurs dépôts de relais sont disponibles pour un itinéraire, le plus proche est sélectionné par le solveur.

Vous devez définir les propriétés des relais de tournée que vous spécifiez, comme le nom du dépôt où le relais de tournée peut se produire— utilisant des attributs :

ObjectID

Champ d'ID géré par le système.

DepotName

Nom du dépôt où ce relais a lieu. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les dépôts.

RouteName

Nom de l’itinéraire auquel ce relais de tournée s’applique. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

ServiceTime

Durée de desserte du relais. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

La durée de chargement d'un véhicule à un dépôt de relais peut dépendre de la taille du véhicule et de son degré de chargement. La durée de desserte d'un relais de tournée est toutefois une valeur fixe et elle ne prend pas en considération la charge réelle. Il est possible d'attribuer à une durée de desserte relais une valeur correspondant à une cargaison complète, une cargaison moyenne ou une autre estimation en temps de votre choix.

Record Set
Couples de course
(Facultatif)

Apparie les ordres de collecte et de livraison pour qu’ils soient traités par la même tournée. La spécification de couples d’ordres empêche l’analyse d’attribuer un seul des ordres à un itinéraire : les deux ordres sont attribués au même itinéraire ou aucun ordre n’est attribué.

Il est parfois nécessaire que l’enlèvement et la livraison soient appariés pour les ordres. Par exemple, un coursier peut demander à l’un de ses employés de collecter un colis prioritaire d’un ordre pour le livrer à un autre sans retourner au dépôt, ou au centre de tri, afin de minimiser le temps de livraison. Il est possible d’utiliser des paires d’ordres pour attribuer ces ordres associés à la même tournée avec la séquence adéquate. Vous pouvez également attribuer des restrictions pour limiter le temps d’immobilisation du paquet dans le véhicule. Par exemple, un prélèvement sanguin doit être transporté du cabinet médical au laboratoire d’analyses en moins de deux heures.

Certaines situations peuvent nécessiter deux paires d’ordres. Supposons, par exemple, que vous souhaitez transporter une personne âgée de son domicile au cabinet de son médecin, puis la ramener chez elle. Le trajet de son domicile au cabinet correspond à une paire d’ordres avec une heure d’arrivée souhaitée chez le médecin. Le trajet de retour, quant à lui, correspond à une autre paire avec une heure de prise en charge souhaitée.

Vous devez définir les propriétés des paires d’ordres que vous spécifiez, comme les noms des deux ordres— utilisant des attributs :

ObjectID

Champ d'ID géré par le système.

FirstOrderName

Nom du premier ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

SecondOrderName

Nom du second ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

Le premier ordre du couple doit être un ordre d’enlèvement. Autrement dit, la valeur de son champ DeliveryQuantities est nulle. Le second ordre du couple doit être un ordre de livraison, la valeur de son champ PickupQuantities est nulle. La quantité enlevée au premier ordre doit correspondre à la quantité livrée au second ordre. Dans les cas où aucune capacité n'est utilisée, les deux ordres peuvent avoir des quantités égales à zéro.

Les quantités des ordres ne sont pas chargées ou déchargées à des dépôts.

MaxTransitTime

Temps de transit maximal pour la paire. Le temps de transit correspond au laps de temps s'écoulant entre l'heure de départ du premier ordre et l'heure d'arrivée au second. Cette contrainte limite le temps passé dans le véhicule, ou temps de trajet, entre les deux ordres. Lorsqu'un véhicule transporte des personnes ou des denrées périssables, le temps de trajet est généralement plus court que celui d'un véhicule transportant des paquets ou des denrées non périssables. Ce champ peut contenir des valeurs nulles, ce qui indique qu'aucune contrainte n'est présente sur le temps de trajet.

L’unité de la valeur de ce champ est spécifiée par la propriété timeUnits de l’objet d’analyse.

Le temps de transit excessif (mesuré en fonction du temps de trajet direct entre des paires d’ordres) peut être suivi et pondéré par le solveur. Vous pouvez donc faire en sorte que le solveur de tournées de véhicules adopte une des trois approches suivantes :

  • réduire le temps de transit excessif, sans tenir compte de l'augmentation du coût de trajet de la flotte,
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer le temps de transit excessif et réduire à la place le coût de trajet de la flotte.

En attribuant un niveau d’importance au paramètre excess_transit_factor, vous choisissez l’une de ces trois approches. Quel que soit le niveau d’importance, le solveur renvoie toujours une erreur en cas de dépassement de la valeur MaxTransitTime.

Record Set
Facteur de transit excessif
(Facultatif)

Spécifie l’importance de la réduction du temps de transit excessif des paires d’ordres. Le temps de transit excessif correspond à la quantité de temps dépassant le temps nécessaire pour effectuer le trajet direct entre une paire d’ordres. Les pauses des chauffeurs ou les trajets aux ordres et aux dépôts intermédiaires peuvent être à l’origine de ces temps excessifs.

  • ElevéeLe solveur tente de trouver une solution présentant le moins de temps de transit excessif possible entre des ordres appariés, mais augmente les coûts de trajet globaux. Cette option est généralement utilisée pour transporter des personnes entre des paires d’ordres et raccourcir le temps de trajet. Il est caractéristique des services de taxi.
  • MoyenneL’importance est équilibrée entre la réduction du temps de transit excessif et la réduction du coût global de la solution. Il s’agit de la valeur par défaut.
  • FaibleL’importance est placée sur la réduction du coût global de la solution, quel que soit le temps de transit excessif. Ce paramètre est fréquemment utilisé par les messageries privées. Ces sociétés transportant des paquets plutôt que des personnes, elles ne se préoccupent pas du temps de trajet. Cette option permet aux coursiers de servir les couples d’ordres dans le bon ordre et de réduire le coût global de la solution.
String
Interruptions ponctuelles
(Facultatif)

Utilisez ce paramètre pour spécifier un ou plusieurs points devant servir de restrictions temporaires ou représentant un délai ou une distance supplémentaire risquant d’être nécessaire pour se déplacer dans les rues sous-jacentes. Par exemple, une interruption ponctuelle peut servir à représenter un arbre tombé dans une rue ou le temps d’attente à un passage à niveau.

L’outil impose une limite de 250 points pouvant être ajoutés comme barrières.

Vous pouvez définir les propriétés des interruptions ponctuelles que vous spécifiez, comme leur nom ou type d’interruption, en utilisant des attributs suivants :

Name

Nom de l'interruption.

BarrierType

Spécifie si l’interruption ponctuelle restreint complètement la circulation ou ajoute un délai ou une distance lorsqu’elle est traversée. La valeur de cet attribut peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option indiqué entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers l’interruption. L’interruption est désignée par le terme d’interruption ponctuelle de restriction, car elle agit comme une restriction.

  • 2 (Added Cost (Coût ajouté)) : lorsque l’interruption est traversée, le temps de déplacement ou la distance augmente de la valeur spécifiée dans le champ Additional_Time, Additional_Distance ou AdditionalCost. Ce type d’interruption est désigné sous le terme d’interruption ponctuelle à coût ajouté.

Additional_Time

Temps de trajet ajouté lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) est temporelle.

Cette valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Measurement Units (Unités de mesure).

Additional_Distance

Distance ajoutée lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) repose sur une distance.

La valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Measurement Units (Unités de mesure).

AdditionalCost

Coût ajouté lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) n’est ni temporelle ni basée sur une distance.

FullEdge

Spécifie la façon dont les interruptions ponctuelles de restriction sont appliquées aux tronçons au cours de l’analyse. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (False (Faux)) : autorise la circulation sur le tronçon jusqu’à l’interruption mais pas la traversée de cette dernière. Il s'agit de la valeur par défaut.
  • 1 (True (Vrai)) : limite la circulation sur l’ensemble du tronçon associé.

CurbApproach

Spécifie le sens de circulation affecté par l’interruption. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (Either side of vehicle (Peu importe le côté)) : l’interruption affecte la circulation sur le tronçon dans les deux sens.
  • 1 (Right side of vehicle (Côté droit du véhicule)) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur droite. Les véhicules qui parcourent le même tronçon mais pour lesquels l’interruption est située sur le côté gauche ne sont pas concernés par l’interruption.
  • 2 (Left side of vehicle (Côté gauche du véhicule)) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur gauche. Les véhicules qui parcourent le même tronçon mais pour lesquels l’interruption est située sur le côté droit ne sont pas concernés par l’interruption.

Les jonctions étant des points et n’ayant donc pas de côté, les interruptions situées sur des jonctions affectent tous les véhicules quel que soit leur sens de circulation.

L’attribut CurbApproach fonctionne avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d’abord, imaginons une ressource qui se trouve du côté gauche d’un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d’aborder la ressource du côté droit ou du côté gauche du véhicule. Par exemple, pour atteindre une ressource sans laisser une voie de circulation entre le véhicule et la ressource, vous choisissez 1 (Right side of vehicle (Côté droit du véhicule)) en France et aux États-Unis, mais 2 (Left side of vehicle (Côté gauche du véhicule)) au Royaume-Uni.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
Interruptions linéaires
(Facultatif)

Utilisez ce paramètre pour spécifier une ou plusieurs lignes interdisant la circulation partout où les lignes intersectent les rues. Par exemple, un défilé ou une manifestation qui bloque la circulation sur plusieurs segments de rue peut être modélisé avec une interruption linéaire. Une interruption linéaire peut également délimiter rapidement un périmètre autour de plusieurs routes et filtrer ainsi les itinéraires possibles en évitant les parties indésirables du réseau de transport.

L’outil impose une limite au nombre de rues que vous pouvez restreindre à l’aide du paramètre Line Barriers (Interruptions linéaires). Bien qu’aucune limite ne soit imposée au nombre de lignes que vous pouvez spécifier comme barrières linéaires, le nombre combiné de rues intersectées par toutes les lignes ne peut pas dépasser 500.

Pour spécifier les interruptions linéaires, vous pouvez définir des propriétés de type nom et interruption pour chaque interruption linéaire à l’aide des attributs suivants :

Name

Nom de l'interruption.

Feature Set
Interruptions polygonales
(Facultatif)

Utilisez ce paramètre pour spécifier les polygones qui restreignent entièrement la circulation ou adaptez proportionnellement le temps ou la distance nécessaire pour se déplacer dans les rues intersectées par les polygones.

Le service impose une limite au nombre de rues que vous pouvez restreindre à l’aide du paramètre Polygon Barriers (Interruptions surfaciques). Bien qu’aucune limite ne soit imposée au nombre de polygones que vous pouvez spécifier comme interruptions polygonales, le nombre combiné de rues intersectées par tous les polygones ne peut pas dépasser 2 000.

Vous pouvez définir les propriétés des interruptions polygonales que vous spécifiez, comme leur nom ou type d’interruption, en utilisant des attributs suivants :

Name

Nom de l'interruption.

BarrierType

Spécifie si l’interruption restreint entièrement le trajet ou proportionne le coût (par exemple, temps ou distance) de parcours correspondant. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers toute partie de l’interruption. L’interruption est désignée par le terme d’interruption polygonale de restriction, car elle empêche les déplacements dans les rues intersectées par l’interruption. Ce type d’interruption sert notamment à modéliser les zones inondées de la rue où la circulation est impossible.

  • 1 (Scaled Cost (Coût proportionné)) : adapte le coût (par exemple, temps ou distance) nécessaire pour se déplacer dans les rues sous-jacentes selon un facteur spécifié avec le champ ScaledTimeFactor ou ScaledDistanceFactor. Si les rues sont partiellement couvertes par l’interruption, le temps de trajet ou la distance est réparti et proportionné. Par exemple, un facteur de 0,25 signifie que le déplacement dans les rues sous-jacentes est censé être quatre fois plus rapide que d’habitude. Un facteur de 3,0 signifie au contraire qu’il prendra trois fois plus de temps que d’habitude. Ce type d’interruption est désigné sous le terme d’interruption polygonale à coût proportionné. Il permet de modéliser des tempêtes qui réduisent la vitesse des déplacements dans des régions spécifiques, par exemple.

ScaledTimeFactor

Il s'agit du facteur de multiplication du temps de trajet des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné et si le paramètre Unités de mesure est temporel.

ScaledDistanceFactor

Il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné et si le paramètre Unités de mesure est basé sur la distance.

ScaledCostFactor

Il s’agit du facteur de multiplication du coût des rues intersectées par l’interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné si le paramètre Unités de mesure n'est pas temporel ou basé sur la distance.

Feature Set
Utiliser la hiérarchie
(Facultatif)

Indique si vous souhaitez utiliser une hiérarchie lorsque vous recherchez les meilleurs itinéraires.

  • Option activée (True) : vous recherchez des itinéraires en utilisant une hiérarchie. Lorsque vous utilisez une hiérarchie, l’outil identifie les rues d’ordre supérieur (comme les autoroutes, avant les rues d’ordre inférieur, comme les routes locales) ; il permet de simuler la préférence du conducteur favorisant les autoroutes plutôt que des routes locales, même si cela implique un trajet plus long. Cela est particulièrement vrai lorsque vous recherchez un itinéraire vers un site éloigné. En effet, pour les longs trajets, les conducteurs préfèrent généralement emprunter des autoroutes qui leur permettent d’éviter les arrêts, les intersections et les tournants. La recherche hiérarchique est plus rapide, surtout pour les longues distances, car l’outil identifie le meilleur itinéraire à partir d’un sous-ensemble de rues relativement plus restreint.
  • Option désactivée (False) : vous recherchez des itinéraires sans utiliser la hiérarchie. Si la hiérarchie n’est pas utilisée, l’outil tient compte de toutes les rues pour trouver le meilleur itinéraire sans identifier nécessairement les rues d’ordre supérieur. Cette valeur sert généralement à trouver des itinéraires courts dans une ville.

L’outil utilise automatiquement la hiérarchie si la distance en ligne droite entre les ordres, dépôts ou ordres et dépôts est supérieure à 50 milles (80 km), même si ce paramètre est désactivé (False).

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Travel Mode (Mode de déplacement) est défini sur Custom (Personnalisé), qui est la valeur par défaut.

Boolean
Restrictions

Restrictions allant être respectées par l’outil lorsque vous recherchez les meilleurs itinéraires.

Une restriction représente une préférence ou une exigence relative à un trajet. Dans la plupart des cas, les restrictions sont utilisées pour interdire certaines routes. Par exemple, la restriction Avoid Toll Roads (Éviter les routes à péage) permet d’obtenir un itinéraire qui n’inclut les routes à péage que lorsque cela est inévitable pour visiter un incident ou une ressource. Height Restriction (Restriction de hauteur) permet de contourner les dégagements qui sont inférieurs à la hauteur du véhicule. Si vous transportez des matières corrosives dans votre véhicule, l’utilisation de la restriction Any Hazmat Prohibited (Substances dangereuses interdites) empêche le transport de ces matériaux sur les routes qui l’interdisent.

Remarque :

Certaines restrictions nécessitent une valeur supplémentaire. Cette valeur doit être associée au nom de la restriction et à un paramètre précis destiné à fonctionner avec la restriction. Vous pouvez identifier ces restrictions si leurs noms apparaissent sous la colonne AttributeName du paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs). Spécifiez le champ ParameterValue pour le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) afin que la restriction soit correctement utilisée lors de la recherche des routes traversables.

Remarque :

Certaines restrictions sont uniquement prises en charge dans certains pays. Leur disponibilité est indiquée par région dans la liste ci-dessous. Parmi les restrictions dont la disponibilité est limitée au sein d’une région, vous pouvez déterminer si la restriction est disponible dans un pays en particulier en examinant la table de la section Liste des pays sur la page Web de couverture d’analyse du réseau. Si un pays a la valeur Yes (Oui) dans la colonne des attributs logistiques, la restriction dotée de la disponibilité sélectionnée dans la région est prise en charge dans ce pays. Si vous spécifiez des noms de restrictions qui ne sont pas disponibles dans le pays dans lequel se trouvent les incidents, le service ignore les restrictions non valides. Le service ignore également les restrictions dont la valeur du paramètre d’attribut Restriction Usage (Utilisation de restriction) est comprise entre 0 et 1 (voir le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs)). Il interdit toutes les restrictions dont la valeur du paramètre Restriction Usage (Utilisation de restriction) est supérieure à 0.

Le service prend en charge les restrictions suivantes :

  • Substances dangereuses interditesLes résultats n’intègrent pas les routes où le transport de marchandises dangereuses est interdit.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Eviter les routes de covoiturageLes résultats ne prendront pas en compte les routes qui sont exclusivement destinées aux véhicules de covoiturage (avec un nombre élevé d’occupants).Disponibilité : Tous les pays
  • Eviter les voies rapidesLes résultats éviteront les voies rapides.Disponibilité : Tous les pays
  • Eviter les ferries.Les résultats éviteront les navettes.Disponibilité : Tous les pays
  • Eviter les barrièresLes résultats ne prendront pas en compte les routes sur lesquelles des barrières sont dressées, par exemple les accès verrouillés ou les allées contrôlées par des gardiens.Disponibilité : Tous les pays
  • Eviter les routes à accès limitéLes résultats ne prendront pas en compte les autoroutes à accès limité.Disponibilité : Tous les pays
  • Eviter les routes privéesLes résultats éviteront les routes qui ne sont pas publiques.Disponibilité : Tous les pays
  • Éviter les itinéraires non adaptés aux piétonsLes résultats éviteront les routes qui ne sont pas adaptées aux piétons.Disponibilité : Tous les pays
  • Éviter les escaliersLes résultats ne prendront pas en compte tous les escaliers sur un itinéraire adapté aux piétons.Disponibilité : Tous les pays
  • Eviter les routes à péageLes résultats éviteront les routes à péage prévues pour la circulation des automobiles.Disponibilité : Tous les pays
  • Eviter les routes à péage pour les camionsLes résultats éviteront les routes à péage prévues pour la circulation des automobiles.Disponibilité : Tous les pays
  • Eviter les routes soumises à restrictions pour les camionsLes résultats évitent les routes où les camions sont interdits, sauf pour effectuer des livraisons.Disponibilité : Tous les pays
  • Eviter les routes non goudronnéesLes résultats éviteront les routes non goudronnées (terre battue, gravier, etc.).Disponibilité : Tous les pays
  • Restriction du nombre d’essieuxLes résultats n’incluront pas les routes sur lesquelles les camions dotés du nombre spécifié d’essieux sont interdits. Le nombre d’essieux peut être indiqué à l’aide du paramètre de restriction Nombre d’essieux.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Conduire un busLes résultats n’incluront pas les routes où les bus sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Conduire un taxiLes résultats n’incluront pas les routes où les taxis sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Conduire un camion.Les résultats n’incluront pas les routes où les camions sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Conduire une automobileLes résultats n’incluront pas les routes où les automobiles sont interdites. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Conduire un véhicule de secoursLes résultats n’incluront pas les routes où les véhicules d’urgence sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Restriction de hauteurLes résultats n’incluront pas les routes où la hauteur des véhicules dépasse la hauteur maximale autorisée pour la route. La hauteur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Vehicle Height (meters) (Hauteur du véhicule (mètres)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Restriction de longueur entre le pivot central et l’essieu arrièreLes résultats n’incluront pas les routes où la longueur des véhicules dépasse la longueur maximale autorisée entre le pivot central et l’essieu arrière pour tous les camions sur la route. La longueur entre le pivot central et l’essieu arrière peut être indiquée à l’aide du paramètre de restriction Longueur entre le pivot central et l’essieu arrière (mètres).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Restriction de longueurLes résultats n’incluront pas les routes où la longueur des véhicules dépasse la longueur maximale autorisée pour la route. La longueur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Vehicle Length (meters) (Longueur du véhicule (mètres)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Privilégié pour les piétonsLes résultats privilégieront les itinéraires adaptés à la circulation des piétons.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Conduire une motoLes résultats n’incluront pas les routes où les motos sont interdites. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Routes en construction interditesLes résultats n’incluront pas les routes qui sont en construction.Disponibilité : Tous les pays
  • Semi-remorques interditsLes résultats n’incluront pas les routes où les semi-remorques sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Véhicules à un seul essieu interditsLes résultats n’incluront pas les routes où les véhicules à un seul essieu sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Véhicules à essieu tandem interditsLes résultats n’incluront pas les routes où les véhicules à essieu tandem sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Trafic de passage interditLes résultats n’intègrent pas les routes où le trafic de passage (non local) est interdit.Disponibilité : Tous les pays
  • Camion avec restriction du nombre de remorqueLes résultats n’incluront pas les routes où les camions dotés du nombre spécifié de remorques sont interdits. Le nombre de remorques sur le camion peut être indiqué à l’aide du paramètre de restriction Nombre de remorques.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Utiliser les itinéraires privilégiés pour les substances dangereusesLes résultats privilégieront les routes désignées pour transporter tout type de marchandises dangereuses.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Utiliser les itinéraires privilégiés pour les camionsLes résultats privilégieront les routes destinées aux camions, telles que les routes faisant partie du réseau national (stipulées dans la loi National Surface Transportation Assistance aux États-Unis), les routes désignées comme routes pour les camions par l’État ou la province, ou encore les routes de prédilection des chauffeurs routiers lorsqu’ils conduisent dans une région.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • MarcheLes résultats n’incluront pas les routes où les piétons sont interdits.Disponibilité : Tous les pays
  • Restriction de poidsLes résultats n’incluront pas les routes où le poids des véhicules dépasse le poids maximal autorisé pour la route. Le poids d’un véhicule peut être spécifié à l’aide du paramètre de restriction Vehicle Weight (kilograms) (Poids du véhicule (kilogrammes)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Restriction de poids par essieuLes résultats n’incluront pas les routes où le poids par essieu des véhicules dépasse le poids par essieu maximal autorisé pour la route. Le poids d’un véhicule par essieu peut être spécifié à l’aide du paramètre de restriction Poids par essieu du véhicule (kilogrammes).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Restriction de largeurLes résultats n’incluront pas les routes où la largeur des véhicules dépasse la largeur maximale autorisée pour la route. La largeur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Largeur du véhicule (mètres).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
Remarque :

Les valeurs que vous indiquez pour ce paramètre sont ignorées, sauf si le paramètre Mode de déplacement est défini sur Personnalisé.

String
Valeurs des paramètres d’attributs
(Facultatif)

Utilisez ce paramètre pour spécifier des valeurs supplémentaires requises par un attribut ou une restriction (par exemple, pour spécifier si la restriction interdit, évite ou préfère la circulation sur des routes soumises à restrictions). Si la restriction consiste à éviter ou à préférer certaines routes, vous pouvez utiliser ce paramètre pour préciser le degré d'évitement ou de préférence. Par exemple, vous pouvez choisir de ne jamais emprunter de routes à péage, de les éviter autant que possible ou de les préférer.

Remarque :

Les valeurs que vous indiquez pour ce paramètre sont ignorées, sauf si le paramètre Mode de déplacement est défini sur Personnalisé.

Si vous spécifiez le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) d’une classe d’entités, les noms de champs sur la classe d’entités doivent correspondre aux champs, comme suit :

  • AttributeName : nom de la restriction.
  • ParameterName : nom du paramètre associé à la restriction. Une restriction peut avoir une ou plusieurs valeurs de champs ParameterName selon son utilisation prévue.
  • ParameterValue : valeur de ParameterName utilisée par l’outil lors de l’évaluation de la restriction.

Le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) dépend du paramètre Restrictions. Le champ ParameterValue ne s’applique que si le nom de la restriction est spécifié comme valeur du paramètre Restrictions.

Dans le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs), chaque restriction (affichée sous la forme AttributeName) se voit attribuer une valeur de champ ParameterName, Restriction Usage (Utilisation d’une restriction), qui détermine si la restriction interdit, évite ou préfère la circulation sur les routes associées à la restriction et précise le degré d’évitement ou de préférence des routes. Le champ ParameterName Restriction Usage (Utilisation d’une restriction) peut se voir attribuer l’une des valeurs de chaîne suivantes ou leurs valeurs numériques équivalentes affichées entre parenthèses :

  • PROHIBITED (-1) - La circulation sur les routes utilisant la restriction est totalement interdite.
  • AVOID_HIGH (5) : il est très improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • AVOID_MEDIUM (2) : il est improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • AVOID_LOW (1.3) : il est assez improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_LOW (0.8) : il est assez probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_MEDIUM (0.5) : il est probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_HIGH (0.2) : il est très probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.

Dans la plupart des cas, vous pouvez utiliser la valeur par défaut, PROHIBITED, comme valeur Restriction Usage (Utilisation d’une restriction) si la restriction dépend d’une caractéristique du véhicule, telle que sa hauteur. Toutefois, dans certains cas, la valeur Restriction Usage (Utilisation d’une restriction) dépend de vos préférences d’itinéraire. Par exemple, pour l’attribut Restriction Usage (Utilisation d’une restriction), la valeur par défaut de la restriction Avoid Toll Roads (Éviter les routes à péage) est AVOID_MEDIUM. Cela signifie que lorsque cette restriction est utilisée, l’outil contourne les routes à péage, dans la mesure du possible. AVOID_MEDIUM indique également l’importance d’éviter les routes à péage lorsque vous recherchez le meilleur itinéraire : dans ce cas, la priorité est moyenne. Si vous choisissez AVOID_LOW, il est moins important d’éviter les routes à péage ; la sélection de AVOID_HIGH, en revanche, donne une plus grande importance à ce choix et justifie ainsi la génération par le service d’itinéraires plus longs afin d’éviter les péages. Si vous optez pour PROHIBITED, vous interdisez formellement la circulation sur des routes à péage, ce qui rend impossible la fréquentation d’un tronçon d’une route à péage dans la préparation de l’itinéraire. Gardez à l’esprit que l’évitement ou l’interdiction de routes à péage, et l’évitement du paiement de péages, peut constituer un objectif dans certains cas. En revanche, d’autres préféreront circuler sur des routes à péage, car il leur apparaît plus important d’éviter les embouteillages plutôt que d’économiser sur les coûts de péage. Dans ce dernier cas, vous devez choisir PREFER_LOW, PREFER_MEDIUM ou PREFER_HIGH comme valeur du paramètre Restriction Usage (Utilisation d’une restriction). Plus la préférence est élevée, plus l’outil devra dévier afin d’autoriser la circulation sur les routes associées à la restriction.

Record Set
Charger les lignes d’itinéraires
(Facultatif)

Spécifie si la ligne de l’itinéraire en sortie doit être générée.

  • Option activée (True) : les itinéraires en sortie ont la forme exacte des rues sous-jacentes.
  • Option désactivée (False) : aucune forme n’est générée pour les itinéraires en sortie, mais les itinéraires contiennent toujours les informations tabulaires concernant la solution. Vous ne pouvez pas générer de feuilles de route si aucune ligne d’itinéraire n’est créée.

Lorsque le paramètre Forme d’itinéraire est défini sur Géométrie réelle, vous pouvez contrôler davantage la généralisation de la forme d’itinéraire en utilisant les valeurs appropriées pour le paramètre Tolérance de simplification des lignes de tournées.

Quelle que soit la valeur que vous choisissez pour le paramètre Forme d’itinéraire, les itinéraires les plus appropriés sont toujours déterminés en réduisant au maximum le déplacement dans les rues, jamais avec la distance en ligne droite. Cela signifie que seules les formes d'itinéraire sont différentes, pas les rues sous-jacentes dans lesquelles effectuer la recherche d'itinéraire.

Boolean
Tolérance de simplification des lignes de tournées
(Facultatif)

Le niveau de simplification de la géométrie des lignes en sortie pour les itinéraires et les directions.

La valeur que indiquez pour ce paramètre est ignorée, sauf si le paramètre Travel Mode (Mode de déplacement) est défini sur Custom (Personnalisé), qui est la valeur par défaut.

L’outil ignore également ce paramètre si le paramètre populate_route_lines est désactivé (False).

La simplification conserve les points critiques sur un itinéraire, comme les virages dans les intersections, pour définir la forme globale de l'itinéraire et supprimer d'autres points. La distance de simplification que vous spécifiez est le décalage maximal autorisé de la ligne simplifiée par rapport à la ligne d'origine. La simplification d’une ligne diminue le nombre de sommets qui appartiennent à la géométrie de l’itinéraire. Cette opération améliore le temps de traitement de l’outil.

Linear Unit
Charger les feuilles de route
(Facultatif)

Spécifie si l’outil génère des feuilles de route pour chaque itinéraire.

  • Activé (True dans Python) : la feuille de route sera générée et configurée en fonction des valeurs des paramètres Directions Language (Langue de la feuille de route), Directions Style Name (Nom de style de la feuille de route) et Directions Distance Units (Unités de distance de la feuille de route).
  • Désactivé (False dans Python) : les feuilles de route ne sont pas générées et l’outil renvoie une couche Directions vide.

Boolean
Langue de la feuille de route
(Facultatif)

Langue allant être utilisée lors de la génération de la feuille de route.

Ce paramètre n’est utilisé que lorsque le paramètre Populate Directions (Charger les feuilles de route) est activé (True dans Python).

La valeur du paramètre peut être spécifiée avec l’un des codes de langue de deux ou cinq caractères suivants :

  • ar—Arabe
  • bg—Bulgare
  • bs—Bosniaque
  • ca—Catalan
  • cs—Tchèque
  • da—Danois
  • de—Allemand
  • el—Grec
  • en—Anglais
  • es—Espagnol
  • et—Estonien
  • fi—Finlandais
  • fr—Français
  • he—Hébreu
  • hr—Croate
  • hu—Hongrois
  • id—Indonésien
  • it—Italien
  • ja—Japonais
  • ko—Coréen
  • lt—Lituanien
  • lv—Letton
  • nb—Norvégien
  • nl—Néerlandais
  • pl—Polonais
  • pt-BR—Portugais (Brésil)
  • pt-PT—Portugais (Portugal)
  • ro—Roumain
  • ru—Russe
  • sk—Slovaque
  • sl—Slovène
  • sr—Serbe
  • sv—Suédois
  • th—Thaï
  • tr—Turc
  • uk—Ukrainien
  • vi—Vietnamien
  • zh-CN—Chinois (Chine)
  • zh-HK—Chinois (Hong Kong)
  • zh-TW—Chinois (Taïwan)

L’outil recherche d’abord une correspondance parfaite pour la langue spécifiée comportant n’importe quelle localisation de langue. S’il n’existe aucune correspondance parfaite, il essaie de faire correspondre la famille de langues. Si une correspondance n’est toujours pas trouvée, l’outil renvoie la feuille de route dans la langue par défaut, à savoir l’anglais. Imaginons, par exemple, que la langue de la feuille de route spécifiée est es-MX (espagnol du Mexique), l’outil renvoie la feuille de route en espagnol car il prend en charge le code de langue es, mais pas le code es-MX.

Attention :

Si une langue prend en charge la localisation telle que le portugais du Brésil (pt-BR) et le portugais standard (pt-PT), spécifiez la famille de langues ainsi que la localisation. Si vous spécifiez uniquement la famille de langues, l’outil ne fait pas correspondre la famille de langue et renvoie la feuille de route dans la langue par défaut, c’est-à-dire en anglais. Ainsi, lorsque la langue de la feuille de route spécifiée est pt, l’outil renvoie la feuille de route en anglais étant donné qu’il ne peut pas déterminer si la feuille de route doit être en pt-BR ou pt-PT.

String
Nom de style de la feuille de route
(Facultatif)

Spécifie le nom du style de mise en forme des feuilles de route. Ce paramètre n’est utilisé que lorsque le paramètre Populate Directions (Charger les feuilles de route) est activé (True dans Python).

  • Network Analyst DesktopLe style sera une feuille de route tournant par tournant adaptée à l’impression.
  • Navigation Network AnalystLe style sera une feuille de route conçue pour un dispositif de navigation dans un véhicule.
String
Mode de déplacement
(Facultatif)

Le mode de transport qui sera modélisé dans l’analyse. Les modes de déplacement sont gérés dans ArcGIS Online et peuvent être configurés par l’administrateur de votre organisation pour refléter les processus de l’organisation. Indiquez le nom d’un mode de déplacement pris en charge par votre organisation.

Pour obtenir la liste des noms des modes de déplacements pris en charge, exécutez l’outil Get Travel Modes (Obtenir les modes de déplacement) de la boîte à outils Utilitaires sous la connexion au serveur SIG que vous avez utilisée pour accéder à l’outil. L’outil Get Travel Modes (Obtenir les modes de déplacement) ajoute une table nommée Modes de déplacement pris en charge à l’application. N’importe quelle valeur du champ Travel Mode Name dans la table des modes de déplacement pris en charge peut être spécifiée en entrée. Vous pouvez également indiquer la valeur du champ Travel Mode Settings en entrée. L’exécution de l’outil est ainsi accélérée, car il n’a pas besoin de rechercher les paramètres en fonction du nom du mode de déplacement.

La valeur par défaut, Custom (Personnalisé), vous permet de configurer un mode de déplacement personnalisé à l’aide des paramètres du mode de déplacement personnalisé (UTurn at Junctions (Demi-tours aux jonctions), Use Hierarchy (Utiliser la hiérarchie), Restrictions, Attribute Parameter Values (Valeurs des paramètres d’attributs) et Impedance (Impédance)). Les valeurs par défaut des paramètres du mode de trajet personnalisé modélisent les déplacements en voiture. Vous pouvez également choisir Custom (Personnalisé) et définir les paramètres du mode de trajet personnalisé répertoriés ci-dessus pour modéliser un piéton qui marche très rapidement ou un camion doté d’une hauteur donnée, d’un poids en particulier et qui transporte des matières dangereuses. Vous pouvez essayer différents paramètres afin d’obtenir les résultats d’analyse qui vous intéressent. Une fois les paramètres d’analyse identifiés, collaborez avec l’administrateur de votre organisation pour enregistrer ces paramètres dans le cadre d’un mode de déplacement nouveau ou existant afin que tous les membres de votre organisation puissent exécuter l’analyse avec les mêmes paramètres.

Attention :

Lorsque vous choisissez Custom (Personnalisé), les valeurs que vous définissez pour les paramètres du mode de déplacement personnalisé sont incluses dans l’analyse. Si vous spécifiez un autre mode de déplacement (défini par votre organisation), les valeurs que vous définissez pour les paramètres du mode de déplacement personnalisé sont ignorées. L’outil les remplace par les valeurs du mode de déplacement spécifié.

String
Impédance
(Facultatif)

Spécifie l’impédance. Il s’agit d’une valeur représentant l’effort ou le coût de déplacement le long des segments de route ou sur d’autres portions du réseau de transport.

Le temps de trajet est une impédance : une voiture peut mettre 1 minute à parcourir un mile sur une route déserte. Les temps de trajet peuvent varier selon le mode de déplacement : un piéton peut mettre plus de 20 minutes à parcourir le même mile. Il est par conséquent important de choisir l’impédance appropriée au mode de déplacement que vous modélisez.

La distance à parcourir peut également être une impédance ; la longueur d’une route en kilomètres peut être considérée comme une impédance. En ce sens, la distance à parcourir est la même pour tous les modes : un kilomètre pour un piéton est également un kilomètre pour une voiture. (Ce qui peut changer, ce sont les voies d’accès que les différents modes sont autorisés à emprunter. Cela affecte la distance entre les points et est modélisé par les paramètres du mode de déplacement.)

Si vous choisissez une impédance temporelle, telle que TravelTime, TruckTravelTime, Minutes, TruckMinutes ou WalkTime, le paramètre Unités des bornes doit être défini sur une valeur de temps. En revanche, si vous choisissez une impédance de distance, telle que Miles ou Kilomètres, la valeur Unités des bornes doit exprimer une distance.

  • Temps de trajetLes données de trafic historique et réel sont utilisées. Cette option est idéale pour modéliser le temps de déplacement sur route à une heure donnée aux données de vitesse du trafic réel lorsqu’elles sont disponibles. Lorsque vous utilisez cette option, vous pouvez éventuellement définir le paramètre attributaire (km/h) pour spécifier la limite de vitesse physique à laquelle le véhicule peut circuler.
  • MinutesLes vitesses moyennes historiques pour les données automobiles sont utilisées, pas les données de trafic en temps réel.
  • Temps de trajet pour camionsLes données de trafic historique et réel sont utilisées, mais la vitesse est plafonnée selon les limitations de vitesse indiquées pour les camions. Il est idéal pour modéliser le temps de déplacement sur route à une heure donnée. Lorsque vous utilisez cette option, vous pouvez éventuellement définir le paramètre attributaire (km/h) pour spécifier la limite de vitesse physique à laquelle le camion peut circuler.
  • Minutes en camionLes données de trafic réel ne sont pas utilisées, mais la vitesse la plus basse parmi les vitesses moyennes historiques pour les automobiles est utilisée dans le respect des limitations de vitesse indiquées pour les camions.
  • Temps de trajet à piedLa vitesse correspond par défaut à une vitesse de 5 km/heure sur toutes les routes et les voies, mais cette valeur peut être configurée via le paramètre attributaire (km/h).
  • Temps à un kilomètre à l’heureLa vitesse correspond par défaut à une vitesse de 1 km/heure sur toutes les routes et les voies. Il est impossible de modifier la vitesse au moyen d’un paramètre attributaire.
  • Temps de trajet en voitureLes temps de trajet en voiture sont modélisés. Ces temps de trajet sont dynamiques et fluctuent selon la circulation dans les zones où les données de trafic sont disponibles. Il s’agit de la valeur par défaut.
  • Durée du trajet pour camionsLes temps de trajet en camion sont modélisés. Ces temps de trajet sont statiques pour chaque route et ne fluctuent pas selon la circulation.
  • Temps de trajet à piedLes temps de trajet piéton sont modélisés.
Attention :

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Mode de déplacement est défini sur Personnalisé, qui est la valeur par défaut.

Héritage :

Les valeurs d’impédance Drive Time (Temps de trajet), Truck Time (Durée du trajet pour camions), Walk Time (Durée du trajet à pied) et Travel Distance (Distance à parcourir) ne sont plus prise en charge et seront retirées dans une version ultérieure. Si vous utilisez l’une de ces valeurs, l’outil utilise la valeur du paramètre Time Impedance (Impédance de temps) pour les valeurs temporelles et celle du paramètre Distance Impedance (Paramètre d’impédance) pour les valeurs basées sur la distance.

String
Utilisation du fuseau horaire pour les champs temporels
(Facultatif)

Indique le fuseau horaire des champs date-heure en entrée pris en charge par l’outil. Ce paramètre spécifie le fuseau horaire pour les champs suivants : TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime et OutboundDepartTime pour les ordres. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2 pour les dépôts. EarliestStartTime et LatestStartTime pour les itinéraires. TimeWindowStart et TimeWindowEnd pour les pauses.

  • GEO_LOCALLes valeurs date-heure associées aux ordres ou dépôts sont dans le fuseau horaire dans lequel les ordres et les dépôts se trouvent. Pour les itinéraires, les valeurs date-heure sont basées sur le fuseau horaire où se trouve le dépôt de début pour l’itinéraire. Si un itinéraire n’a pas de dépôt de départ, tous les ordres et dépôts de l’ensemble des itinéraires doivent être dans un seul et même fuseau horaire. Pour les interruptions, les valeurs date-heure sont basées sur le fuseau horaire des itinéraires. Par exemple, si le dépôt se situe dans une zone qui suit l’heure normale de l’Est et que ses premières valeurs de fenêtre horaire (spécifiées comme TimeWindowStart1 et TimeWindowEnd1) sont 8 h 00 et 17 h 00, les valeurs de fenêtre horaire seront traitées comme 8 h 00 et 17 h 00, heure normale de l’Est.
  • UTCLes valeurs date-heure associées aux ordres ou dépôts sont exprimées en temps universel coordonné (UTC) et ne sont pas basées sur le même fuseau horaire que les ordres ou les dépôts. Par exemple, si le dépôt se situe dans une zone qui suit l’heure normale de l’Est et si ses premières valeurs de fenêtre horaire (spécifiées comme TimeWindowStart1 et TimeWindowEnd1) sont 8 h 00 et 17 h 00, les valeurs de fenêtre horaire seront considérées comme 12 h 00 et 21 h 00, heure normale de l’Est, en tenant compte de l’heure d’été.
  • GEO_LOCALGEO_LOCAL
  • UTCUTC

Le fait de spécifier les valeurs date-heure en UTC est utile si vous ne connaissez pas le fuseau horaire dans lequel les ordres ou les dépôts se situent ou si vous avez des ordres ou des dépôts dans plusieurs fuseaux horaires et si vous souhaitez que toutes les valeurs date-heures commencent en simultané. L’option UTC s’applique uniquement lorsque votre jeu de données réseau définit un attribut de fuseau horaire. Sinon, toutes les valeurs de date et d’heure sont toujours traitées en tant que GEO_LOCAL.

String
Enregistrer la couche d’analyse de réseau en sortie
(Facultatif)

Précise si les paramètres de l’analyse seront enregistrés comme fichier de couche d’analyse réseau. Vous ne pouvez pas utiliser ce fichier directement, même lorsque vous ouvrez le fichier dans une application ArcGIS Desktop telle qu’ArcMap. Celui-ci doit être envoyé au support technique Esri, qui évaluera la qualité des résultats renvoyés par l’outil.

  • Option activée (True) : le fichier de couche d’analyse de réseau est enregistré. Le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer l’emplacement du fichier téléchargé en affichant la valeur du paramètre Output Network Analysis Layer (Couche d’analyse de réseau en sortie) dans l’entrée correspondant à l’exécution de l’outil dans l’historique de géotraitement de votre projet. Dans ArcMap, l’emplacement du fichier peut être déterminé via l'option Copier l'emplacement dans le menu contextuel du paramètre Couche d'analyse de réseau en sortie de l’entrée correspondant à l’exécution de l’outil dans la fenêtre Résultats du géotraitement.
  • Option désactivée (False) : n’enregistre pas le fichier de couche d’analyse réseau. Il s’agit de l’option par défaut.

Boolean
Contournements
(Facultatif)

Remarque :

Ce paramètre n’est destiné qu’à un usage interne.

String
Enregistrer les données d’itinéraires
(Facultatif)

Indique si la sortie inclut un fichier .zip contenant une géodatabase fichier avec les entrées et sorties de l’analyse dans un format qui peut servir à partager les couches d’itinéraires avec ArcGIS Online ou Portal for ArcGIS.

  • Option activée (True) : les données d’itinéraires sont enregistrées en tant que fichier .zip. Le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer l’emplacement du fichier téléchargé en affichant la valeur du paramètre Output Route Data (Données d’itinéraires en sortie) dans l’entrée correspondant à l’exécution de l’outil dans l’historique de géotraitement de votre projet. Dans ArcMap, l’emplacement du fichier peut être déterminé via l'option Copier l'emplacement dans le menu contextuel du paramètre Données d'itinéraires en sortie de l’entrée correspondant à l’exécution de l’outil dans la fenêtre Résultats du géotraitement.

  • Option désactivée (False) : les données d’itinéraire ne sont pas enregistrées en tant que fichier. Il s’agit de l’option par défaut.

Boolean
Impédance de temps
(Facultatif)

La valeur d’impédance basée sur le temps représente le temps de trajet le long des segments de route ou sur d’autres portions du réseau de transport.

  • MinutesImpédance de temps : minutes.
  • Temps de trajetImpédance de temps : temps de trajet
  • Temps à un kilomètre à l’heureImpédance de temps : temps de trajet à un kilomètre/heure
  • Temps de trajet à piedImpédance de temps : temps de trajet à pied
  • Minutes en camionImpédance de temps : minutes pour les camions.
  • Temps de trajet pour camionsImpédance de temps : temps de trajet pour les camions
Remarque :
Si l’impédance du mode de déplacement, spécifiée via le paramètre Impedance (Impédance), est basée sur le temps, les valeurs des paramètres Time Impedance (Impédance de temps) et Impedance (Impédance) doivent être identiques. Sinon, le service renvoie une erreur.
String
Impédance de distance
(Facultatif)

La valeur d’impédance basée sur une distance représente la distance de trajet le long des segments de route ou sur d’autres portions du réseau de transport.

  • MilesImpédance de distance : miles.
  • KilomètresImpédance de distance : kilomètres.
Remarque :
Si l’impédance du mode de déplacement, spécifiée via le paramètre Impedance (Impédance), est basée sur une distance, les valeurs des paramètres Distance Impedance (Impédance de distance) et Impedance (Impédance) doivent être identiques. Sinon, le service renvoie une erreur.
String
Renseigner les formes d’arrêt
(Facultatif)

Spécifie si l’outil doit créer les formes des arrêts affectés et non affectés en sortie.

  • Option activée (True) : les arrêts affectés et non affectés en sortie sont créés sous forme d’entités ponctuelles. Cela peut être utile pour distinguer visuellement les arrêts affectés aux itinéraires et ceux qui ne le sont pas.

  • Option désactivée (False) : les arrêts affectés et non affectés en sortie sont créés sous forme de tables et sont dépourvus de formes. Il s’agit de l’option par défaut. Utilisez cette option seulement si votre application n’a pas besoin de visualiser les arrêts en sortie et fonctionne uniquement avec les attributs des arrêts.

Boolean
Format en sortie
(Facultatif)

Spécifie le format dans lequel les entités de sortie sont renvoyées.

Lorsqu’un format en sortie basé sur un fichier, tel que JSON File (Fichier JSON) ou GeoJSON File (Fichier GeoJSON), est spécifié, aucune sortie n’est ajoutée à l’affichage car l’application (par exemple, ArcMap ou ArcGIS Pro) ne peut pas afficher le contenu du fichier de résultats. À la place, le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer la localisation du fichier téléchargé en affichant la valeur du paramètre Output Result File (Fichier de résultats en sortie) dans l’entrée correspondant à l’opération de l’outil dans l’historique de géotraitement du projet. Dans ArcMap, la localisation du fichier peut être déterminée via l’option Copy Location (Copier la localisation) dans le menu contextuel du paramètre Output Result File (Fichier de résultats en sortie) de l’entrée correspondant à l’opération de l’outil dans la fenêtre Geoprocessing Results (Résultats du géotraitement).

  • Jeu d’entitésLes entités en sortie sont renvoyées en tant que classes d’entités et tables. Il s’agit de l’option par défaut.
  • Fichier JSONLes entités en sortie sont renvoyées sous forme d’un fichier compressé contenant une représentation JSON des sorties. Lorsque cette option est spécifiée, la sortie est un fichier unique (portant l’extension .zip) qui contient un ou plusieurs fichiers JSON (dont l’extension est .json) pour chacune des sorties créées par le service.
  • Fichier GeoJSONLes entités en sortie sont renvoyées sous forme d’un fichier compressé contenant une représentation GeoJSON des sorties. Lorsque cette option est spécifiée, la sortie est un fichier unique (portant l’extension .zip) qui contient un ou plusieurs fichiers GeoJSON (dont l’extension est .geojson) pour chacune des sorties créées par le service.
String
Ignorer les emplacements dont l’ordre est incorrect
(Facultatif)

Spécifie si les ordres non valides sont ignorés pour le calcul de la tournée de véhicules.

  • Option activée (True) : le calcul ignore les ordres non valides et renvoie une solution, s’il n’a rencontré aucune autre erreur. Si vous devez générer des itinéraires et les transmettre immédiatement aux chauffeurs, vous pouvez ignorer les ordres non valides, calculer et distribuer les itinéraires à vos chauffeurs. Résolvez ensuite les ordres non valides du dernier calcul et intégrez-les dans l’analyse VRP pour le prochain jour de travail.

  • Option désactivée (False) : le calcul échoue si des ordres non valides sont rencontrés. Un ordre non valide est un ordre que le solveur de tournées de véhicules ne peut pas atteindre. Un ordre peut être inatteignable pour différentes raisons, notamment : il se trouve sur un élément de réseau interdit, il ne figure pas du tout sur le réseau ou il se situe sur une portion déconnectée du réseau.

Boolean
Paramètres de localisation
(Facultatif)

Utilisez ce paramètre pour spécifier les paramètres qui affectent le mode de localisation des entrées. Il s’agit par exemple de la distance de recherche maximale à utiliser pour localiser les entrées sur le réseau ou des sources de réseau utilisées pour la localisation.

En savoir plus sur la localisation des entrées

La valeur du paramètre est spécifiée en tant qu’objet JSON. L’objet JSON vous permet de spécifier un JSON de localisateur pour toutes les entités en entrée de l’analyse. Vous pouvez également spécifier un remplacement pour une entrée en particulier. Le remplacement vous permet d’avoir différents paramètres pour chaque entrée d’analyse.

L’objet JSON de localisateur possède les propriétés suivantes :

  • tolerance et toleranceUnits : vous permettent de contrôler la distance de recherche maximale lors de la localisation des entrées. Si aucune localisation de réseau valide n’est détectée dans cette distance, les entités en entrée sont considérées comme non localisées. Une faible tolérance de recherche diminue la probabilité de localisation sur la rue incorrecte, mais augmente celle de ne pas trouver de localisation de réseau valide. La valeur du paramètre toleranceUnits doit être l’une des valeurs suivantes :
    • esriCentimeters
    • esriDecimalDegrees
    • esriDecimeters
    • esriFeet
    • esriInches
    • esriIntFeet
    • esriIntInches
    • esriIntMiles
    • esriIntNauticalMiles
    • esriIntYards
    • esriKilometers
    • esriMeters
    • esriMiles
    • esriMillimeters
    • esriNauticalMiles
    • esriYards
  • sources : vous permet de contrôler la source de réseau à utiliser pour la localisation. Par exemple, vous pouvez configurer l'analyse de sorte à localiser les entrées sur les rues, mais non sur les trottoirs. La liste des sources possibles de localisation est spécifique au jeu de données réseau auquel ce service fait référence. Seules les sources qui sont présentes dans la matrice des sources sont utilisées pour la localisation. Les sources sont spécifiées sous forme de matrice d’objets qui comportent chacune la propriété suivante :
    • name : nom de la classe d’entités source de réseau pouvant servir à localiser les entrées.
  • allowAutoRelocate : vous permet de contrôler si les entrées pour lesquelles il existe des champs de localisation de réseau peuvent être relocalisées automatiquement au moment du calcul afin de garantir des champs de localisation routables et valides pour l’analyse. Si la valeur est true, les points situés sur des éléments de réseau restreints et les points affectés par des interruptions sont relocalisés vers la localisation routable la plus proche. Si la valeur est false, les champs de localisation de réseau sont utilisés tels quels, même si les points sont inaccessibles, et le calcul risque d’échouer. Même si la valeur est false, les entrées sans champ de localisation ou avec des champs de localisation incomplets sont localisées au cours de l’analyse.
Remarque :
À ce stade, la matrice sources ne permet pas de spécifier des noms de source différents. En outre, allowAutoRelocate est toujours true car le service ne prend pas en charge les champs de localisation.

L’objet JSON Locate_Settings vous permet de spécifier un JSON de localisateur par défaut pour toutes les entités en entrée de l’analyse, ainsi que des remplacements pour chaque classe en entrée. Lorsque vous spécifiez les Locate_Settings JSON, vous devez modifier les propriétés suivantes ; tolerance, toleranceUnits et allowAutoRelocate. Si vous devez fournir un JSON de localisateur différent pour une classe en entrée en particulier, vous devez inclure une propriété de remplacements pour cette entrée. Le nom de la propriété doit correspondre au nom du paramètre en entrée. Le JSON de localisateur pour une entrée en particulier n’a pas besoin d’inclure toutes les propriétés. Il vous suffit d’indiquer celles qui sont différentes des propriétés du JSON de localisateur par défaut.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Arrêts non attribués en sortie
Remarque :

Le JSON de ressource du service permet d’obtenir la valeur par défaut de ce paramètre. Ajoutez ?token=<yourToken>&f=pjson à l’URL du service pour accéder au JSON de ressource du service.

Ce paramètre permet d’accéder aux ordres qu’aucun itinéraire n’a pu atteindre. Vous pouvez également déterminer pourquoi les ordres n’ont pas pu être respectés et apporter les modifications nécessaires pour corriger le problème.

Feature Set
Arrêts en sortie

Ce paramètre fournit des informations sur les arrêts effectués aux dépôts, aux ordres et pendant les pauses. Ces données précisent notamment les itinéraires qui comportent des arrêts, les heures de départ et d'arrivée, ainsi que la séquence des arrêts.

Feature Set
Itinéraires en sortie

Ce paramètre permet d’accéder aux conducteurs, véhicules et itinéraires d’une analyse en vue d’une tournée de véhicules.

Feature Set
Feuilles de route en sortie

Ce paramètre permet d’accéder à la feuille de route détaillée de chaque itinéraire obtenu.

Feature Set
Erreur résolue

Indique si l’optimisation des tournées de véhicules a réussi.

Boolean
Couche d’analyse de réseau en sortie

Couche d’analyse de réseau, avec des propriétés configurées dans les paramètres d’outil, pouvant être utilisée à des fins d’analyse ou de débogage plus avancés dans la carte.

File
Données d’itinéraires en sortie

Fichier .zip contenant toutes les informations relatives à un itinéraire particulier.

File
Fichier de résultats en sortie

Fichier .zip contenant les résultats de l’analyse avec un ou plusieurs fichiers pour chaque sortie. Le format d’un fichier est spécifié par le paramètre Output Format (Format en sortie).

File
Paquetage de couche d’analyse de réseau en sortie

Paquetage de couche qui inclut une couche d’analyse de réseau avec les données et les paramètres utilisés dans l’analyse.

File
Coût d’utilisation

Ce paramètre renvoie les crédits utilisés par l’analyse.

Remarque :

Chaque analyse peut générer un nombre différent d’objets facturables et utilise par conséquent un nombre différent de crédits. Si le service ne parvient pas à déterminer le nombre de crédits, le paramètre usage_cost renvoie la valeur -1 pour credits.

JSON

arcpy.agolservices.SolveVehicleRoutingProblem(orders, depots, routes, breaks, time_units, distance_units, {analysis_region}, {default_date}, {uturn_policy}, {time_window_factor}, {spatially_cluster_routes}, {route_zones}, {route_renewals}, {order_pairs}, {excess_transit_factor}, {point_barriers}, {line_barriers}, {polygon_barriers}, {use_hierarchy_in_analysis}, restrictions, {attribute_parameter_values}, {populate_route_lines}, {route_line_simplification_tolerance}, {populate_directions}, {directions_language}, {directions_style_name}, {travel_mode}, {impedance}, {time_zone_usage_for_time_fields}, {save_output_layer}, {overrides}, {save_route_data}, {time_impedance}, {distance_impedance}, {populate_stop_shapes}, {output_format}, {ignore_invalid_order_locations}, {locate_settings})
NomExplicationType de données
orders

Spécifie un ou plusieurs emplacements où les itinéraires de l’analyse VRP doivent se rendre. Un ordre peut représenter une livraison (livraison d’un meuble, par exemple), une collecte (navette d’aéroport collectant un passager, par exemple) ou tout autre type de service ou d’inspection (élagage d’arbres ou inspection d’un bâtiment, par exemple).

Vous pouvez définir les propriétés des ordres que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

Name

Nom de l’ordre. Le nom doit être unique. Si le nom n’est pas spécifié (champ vide), un nom est automatiquement généré pendant le processus de résolution.

Description

Informations décrivant l'ordre. Ce champ peut contenir toute information textuelle concernant l'ordre, sans restriction en matière d'unicité. Vous pouvez stocker l’identifiant d’un client dans le champ Name et son nom véritable ou son adresse dans le champ Description.

ServiceTime

Cette propriété indique le temps passé à la localisation de réseau traversée par l’itinéraire. Elle stocke donc la valeur d’impédance de la localisation de réseau. Une valeur zéro ou nulle indique que la localisation de réseau n’implique aucune durée de desserte.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Une fenêtre horaire n’indique que le moment auquel un véhicule peut arriver à un ordre, et non l’heure à laquelle la desserte doit être terminée. Pour tenir compte de la durée de la desserte et du départ avant la fin de la fenêtre horaire, vous devez soustraire la valeur ServiceTime du champ TimeWindowEnd1.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart1, possède une valeur horaire uniquement (8h00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L’utilisation de valeurs de date et d’heure (par exemple, 11/07/2010 8 h 00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

Lors de la résolution d'un problème couvrant plusieurs fuseaux horaires, les valeurs des fenêtres horaires de chaque ordre se rapportent au fuseau horaire dans lequel se trouve l'ordre.

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de fin.

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires sont non nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire a une heure de début mais aucune heure de fin. Cette situation est valide.

MaxViolationTime1

Une fenêtre horaire est considérée comme violée si l'heure d'arrivée survient après la fin de la fenêtre horaire. Ce champ spécifie l'infraction de temps maximale autorisée pour la première fenêtre horaire de l'ordre. Elle peut contenir une valeur de zéro, mais pas de valeurs négatives. La valeur zéro indique qu'une violation de fenêtre horaire à la première fenêtre horaire de l'ordre est inacceptable. La première fenêtre horaire est donc stricte. En revanche, une valeur nulle indique qu’il n’existe aucune limite en termes d’infraction de temps autorisée. Une valeur différente de zéro indique le retard maximal autorisé ; par exemple, un itinéraire peut arriver jusqu’à 30 minutes après la fin de sa première fenêtre horaire pour un ordre.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ de distance).

Les violations de fenêtre horaire peuvent être suivies et pondérées par le solveur. Vous pouvez faire en sorte que le solveur VRP procède comme suit :

  • réduire la durée totale de la violation sans tenir compte de l’augmentation du coût de trajet de la flotte ;
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer la durée totale de la violation et réduire à la place le coût de déplacement de la flotte.

En attribuant un degré d’importance au paramètre Time Window Violation Importance (Importance de violation de fenêtre horaire), vous choisissez de fait l’une de ces options. Dans tous les cas, le solveur renvoie une erreur si la valeur définie pour MaxViolationTime1 est dépassée.

MaxViolationTime2

Infraction maximale de temps autorisée pour la deuxième fenêtre horaire de l'ordre. Ce champ est identique au champ MaxViolationTime1.

InboundArriveTime

Définit le moment où l'élément à livrer à l'ordre sera prêt au dépôt de départ.

L'ordre peut être attribué à un itinéraire uniquement si l'heure d'arrivée entrante précède la valeur de la dernière heure de départ de l'itinéraire. Ainsi, l'itinéraire ne peut pas quitter le dépôt avant que l'élément ne soit prêt à y être chargé.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements entrants. Par exemple, supposons qu'une tâche d'un ordre nécessite des matériaux spéciaux qui ne sont actuellement pas disponibles au dépôt. Les matériaux sont expédiés d’un autre emplacement et arriveront au dépôt à 11 h 00. Pour veiller à ce qu'aucun itinéraire sortant ne soit affecté à l'ordre avant l’arrivée de la livraison, l’heure d’arrivée entrante de l’ordre est fixée à 11 h 00. Les matériaux spéciaux arrivent à 11 h 00, ils sont chargés sur le véhicule, et le véhicule quitte le dépôt pour visiter les ordres qui lui sont affectés.

Remarques :

  • L'heure de départ de l'itinéraire, qui inclut la durée de desserte, doit suivre l'heure d'arrivée entrante. Si un itinéraire commence avant l'heure d'arrivée entrante d'un ordre, ce dernier ne peut pas être attribué à l'itinéraire. L'attribution est incorrecte même si l'itinéraire a une durée de desserte au dépôt de départ qui dépasse l'heure d'arrivée entrante.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsque le champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte InboundArriveTime, quelle que soit la valeur DeliveryQuantities.

  • Si une heure de départ sortante est également précisée, sa valeur temporelle doit suivre l'heure d'arrivée entrante.

OutboundDepartTime

Définit le moment où l'élément à collecter à l'ordre doit arriver au dépôt d'arrivée.

L'ordre peut être attribué à un itinéraire uniquement si l'itinéraire peut parvenir à l'ordre et atteindre son dépôt final avant l'heure de départ sortante spécifiée.

Ce champ permet de modéliser des scénarios qui impliquent des transbordements sortants. Par exemple, une société de transport envoie des camions de livraison pour collecter des colis aux différents ordres et les ramener dans un dépôt où ils sont transférés vers d'autres ressources, en route vers leur destination finale. A 15 h 00 chaque jour, un semi-remorque s'arrête au dépôt pour collecter les colis hautement prioritaires et les emmener directement dans un centre de traitement. Pour éviter que les colis hautement prioritaires ne soient retardés et doivent attendre jusqu'à 15 h 00 le jour suivant, la société de transport envoie des camions de livraison collecter les colis hautement prioritaires aux ordres et pour les amener au dépôt avant 15 h 00. Pour ce faire, l'heure de départ sortante doit être réglée sur 15 h 00.

Remarques :

  • L'heure d'arrivée de l'itinéraire, notamment la durée de desserte, doit précéder l'heure de départ sortante. Si un itinéraire parvient à un dépôt, mais qu'elle ne termine pas sa durée de desserte au dépôt final avant l'heure de départ sortante de l'ordre, l'ordre ne peut pas être attribué à l'itinéraire.

  • Ce champ temporel peut contenir une valeur d'heure uniquement ou une valeur de date et d'heure. Si une valeur horaire est définie (par exemple, 11 h 00), la date est censée être la date par défaut définie pour l’analyse. La date par défaut est toutefois ignorée lorsqu'un champ temporel Dépôts, Itinéraires, Ordres ou Interruptions inclut une date avec l'heure. Dans ce cas, renseignez tous ces champs avec une date et une heure (par exemple, 7/11/2015 11:00 AM).

  • Le solveur VRP respecte OutboundDepartTime, quelle que soit la valeur PickupQuantities.

  • Si une heure d'arrivée entrante est également précisée, sa valeur temporelle doit précéder l'heure de départ sortante.

DeliveryQuantities

Taille de la livraison. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les quantités de livraison sans préciser d’unités. Par exemple, si un objet pesant 150 kilos doit être livré à un ordre, entrez 150. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume d’une livraison de 1 000 kilos et 3 mètres cube, respectivement, entrez 1000 3. Là encore, vous devez vous souvenir des unités utilisées, à savoir les kilos et les mètres cube dans ce cas. Vous devez également mémoriser l’ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes.

Assurez-vous que Capacities pour Routes, DeliveryQuantities et PickupQuantities pour Orders sont spécifiés de la même manière. Les valeurs doivent être exprimées dans les mêmes unités. Si vous utilisez plusieurs dimensions, les dimensions doivent être répertoriées dans le même ordre pour tous les paramètres. Ainsi, si vous spécifiez le poids en kilos, puis le volume en mètres cube pour DeliveryQuantities, la capacité de vos itinéraires et les quantités d’enlèvement de vos ordres doivent être spécifiées de la même manière, à savoir poids en kilos, puis volume en mètres cube. Si vous combinez des unités ou modifiez l’ordre, vous obtiendrez des résultats indésirables sans affichage d’un message d’avertissement.

Une chaîne vide ou une valeur nulle signifie que toutes les dimensions sont infinies. Si la chaîne contient un nombre insuffisant de valeurs par rapport au nombre de capacités ou aux dimensions faisant l’objet d’un suivi, les valeurs restantes sont considérées comme infinies. Les quantités de livraison ne peuvent pas être négatives.

PickupQuantities

Taille de l'enlèvement. Vous pouvez spécifier la taille dans la dimension de votre choix, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume. En revanche, vous ne pouvez pas utiliser de valeurs négatives. Ce champ est identique au champ DeliveryQuantities de la classe Orders.

dans le cas d'une visite d'échange, un ordre peut avoir à la fois des quantités de livraison et de collecte.

Revenue

Chiffre d'affaires généré si l'ordre est inclus dans une solution. Ce champ peut contenir une valeur Null, qui indique un chiffre d'affaires égal à zéro, mais il ne peut pas contenir de valeur négative.

Les recettes sont comprises dans l’optimisation de la valeur de fonction objective, mais ne font pas partie du coût opérationnel de la solution. Autrement dit, le champ TotalCost des itinéraires n’inclut jamais les recettes dans sa sortie. Cependant, le chiffre d'affaires pondère l'importance relative de la desserte des ordres.

Les recettes sont comprises dans l’optimisation de la valeur de fonction objective, mais ne font pas partie du coût opérationnel de la solution. Autrement dit, le champ TotalCost dans la classe des itinéraires n’inclut jamais les recettes dans sa sortie. Cependant, le chiffre d'affaires pondère l'importance relative de la desserte des ordres.

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités requises pour l'ordre. Une valeur Null indique que l'ordre n'inclut pas de particularités.

L'orthographe des spécialités répertoriées dans les classes Ordres et Itinéraires doit correspondre pour que le solveur de tournées de véhicules puisse les associer entre elles.

Pour décrire les particularités et leur fonctionnement, prenons l'exemple d'une société d'entretien des pelouses et d'élagage dont une partie de ses ordres nécessite l'usage d'un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

AssignmentRule

Spécifie la règle d’attribution de l’ordre à un itinéraire. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Exclure) : l’ordre est exclu de l’opération de calcul qui s’ensuit.
  • 1 (Conserver la tournée et la séquence définie) : le solveur doit toujours attribuer l’ordre à l’itinéraire préétabli selon la séquence relative prédéfinie lors du calcul. Si cette règle d'attribution ne peut pas être respectée, une violation d'ordre s'ensuit. Avec ce paramètre, seule la séquence relative est conservée (mais pas la séquence absolue). Pour illustrer cela, prenons deux ordres, A et B. Leur valeur de séquence respective est 2 et 3. Si vous définissez les valeurs du champ AssignmentRule sur Conserver la tournée et la séquence relative, les valeurs de séquence de A et B peuvent changer une fois l’analyse terminée, car d’autres ordres, pauses et passages aux dépôts peuvent encore être insérés avant, entre ou après A et B. Toutefois, B ne peut pas survenir avant A.
  • 2 (Conserver la tournée) : le solveur doit toujours attribuer l'ordre à l'itinéraire préattribué lors du calcul. Une séquence valide doit aussi être définie, même si elle ne peut pas être conservée. Si l'ordre ne peut pas être attribué à l'itinéraire spécifié, une violation d'ordre s'ensuit.
  • 3 (Déroger) : le solveur tente de conserver l'itinéraire et de séquencer la préattribution de l'ordre lors du calcul. Mais un nouvel itinéraire ou une nouvelle séquence peut être attribuée à l'ordre si cela permet de réduire la valeur globale de la fonction objective. Il s’agit de la valeur par défaut.
  • 4 (Premier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en premier sur cet itinéraire pour limiter la valeur globale de la fonction objective.
  • 5 (Dernier ancrage) : le solveur ignore l'itinéraire et la séquence prédéfinis (le cas échéant) pour l'ordre lors de la résolution. Il attribue un itinéraire à l’ordre qu’il place en dernier sur cet itinéraire pour limiter la valeur globale de la fonction objective.

Ce champ ne peut pas contenir une valeur Null.

CurbApproach

Spécifie la direction dans laquelle un véhicule peut atteindre et quitter le lieu de l’ordre. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter le lieu de l'ordre dans les deux directions, donc le demi-tour est autorisé. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau de l’ordre. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence à l’ordre d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : l'ordre doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu de l'ordre, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu de l'ordre, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons un ordre qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder l'ordre du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre un ordre sans laisser de voie de circulation entre le véhicule et l’ordre, vous choisissez 1 (Côté droit du véhicule) en France et aux États-Unis, mais 2 (Côté gauche du véhicule) au Royaume-Uni.

RouteName

Nom de l'itinéraire auquel l'ordre est attribué.

Ce champ est utilisé pour préattribuer un ordre à une tournée spécifique. Il peut contenir une valeur nulle indiquant que l’ordre n’est préattribué à aucun itinéraire et que le solveur détermine la meilleure attribution d’itinéraire possible pour l’ordre. Si sa valeur est définie sur nul, le champ Sequence doit aussi l’être.

Après un calcul, si l’ordre est visité, le champ RouteName contient le nom de l’itinéraire auquel l’ordre est attribué.

Sequence

Ce champ indique la séquence de l'ordre sur son itinéraire attribué.

Ce champ permet de spécifier la séquence relative d’un ordre sur l’itinéraire. Ce champ peut contenir une valeur Null qui spécifie que l'ordre peut être placé n'importe où le long de l'itinéraire. Une valeur nulle peut survenir seulement avec une valeur RouteName nulle.

Les valeurs de séquence en entrée sont positives et uniques pour chaque itinéraire (partagées par les passages aux dépôts de relais, les ordres et les pauses), mais elles n'ont pas besoin de commencer à 1 ou d'être contiguës.

Après une opération de résolution, le champ Sequence contient la valeur de séquence de l’ordre sur itinéraire qui lui est affecté. Les valeurs de séquence en sortie pour un itinéraire sont partagées entre les passages aux dépôts, les ordres et les pauses. Elles démarrent à 1 (au dépôt initial) et sont consécutives. La plus petite valeur de séquence en sortie possible pour un ordre visité est 2, car un itinéraire commence toujours à un dépôt.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
depots

Spécifie un ou plusieurs dépôts pour la tournée de véhicules spécifiée. Un dépôt est un emplacement d'où part un véhicule au début de sa journée de travail et à laquelle il retourne à la fin de la journée. Les véhicules sont chargés (en cas de livraison) ou déchargés (en cas de collecte) aux dépôts. Dans certains cas, un dépôt peut aussi jouer le rôle d'emplacement de relais où un véhicule peut être déchargé ou rechargé avant de poursuivre les livraisons ou les collectes. Un dépôt possède des heures d’ouverture et de fermeture, spécifiées par une fenêtre horaire stricte. Les véhicules ne peuvent pas arriver à un dépôt en dehors de cette fenêtre horaire.

Vous pouvez définir les propriétés des dépôts que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

Name

Nom du dépôt. Les champs StartDepotName et EndDepotName du jeu des itinéraires font référence aux noms que vous spécifiez ici. Le nom du dépôt est également référencé par le relais de tournée lorsque ce dernier est utilisé.

Les noms de dépôts peuvent être saisis indifféremment en majuscules ou en minuscules, mais ne doivent pas être non vides, ni uniques.

Description

Informations descriptives concernant l’emplacement du dépôt. Ce champ peut contenir toute information textuelle, sans restriction en matière d'unicité.

Si, par exemple, vous voulez noter la région dans laquelle se trouve un dépôt ou encore l’adresse et le numéro de téléphone du dépôt, vous pouvez saisir ces informations ici, plutôt que dans le champ Name.

TimeWindowStart1

Heure de début de la première fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de début.

Les champs de fenêtres horaires (TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2) peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart1, possède une valeur horaire uniquement (8h00, par exemple), la date est censée être la date par défaut définie pour l’analyse. L’utilisation de valeurs de date et d’heure (par exemple, 11/07/2010 8 h 00) vous permet de définir des fenêtres horaires qui couvrent plusieurs jours.

Lors de la résolution d'un problème couvrant plusieurs fuseaux horaires, les valeurs des fenêtres horaires de chaque dépôt se rapportent au fuseau horaire dans lequel se trouve le dépôt.

TimeWindowEnd1

Heure de fin de la première fenêtre pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique aucune heure de fin.

TimeWindowStart2

Heure de début de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null, ce qui indique l'absence de deuxième fenêtre horaire.

Si la première fenêtre horaire spécifiée par les champs TimeWindowStart1 et TimeWindowEnd1 est nulle, la deuxième doit l’être également.

Si les deux fenêtres horaires ne sont pas nulles, elles ne peuvent pas se chevaucher. En outre, la deuxième fenêtre horaire doit survenir après la première.

TimeWindowEnd2

Heure de fin de la deuxième fenêtre horaire pour la localisation réseau. Ce champ peut contenir une valeur Null.

Lorsque TimeWindowStart2 et TimeWindowEnd2 sont tous les deux nuls, il n’existe pas de deuxième fenêtre horaire.

Lorsque TimeWindowStart2 n’est pas nul, mais que TimeWindowEnd2 l’est, une deuxième fenêtre horaire a une heure de début mais aucune heure de fin. Cette situation est valide.

CurbApproach

  • 0 (Peu importe le côté) : le véhicule peut atteindre et quitter le lieu du dépôt dans les deux directions, donc le demi-tour est autorisé. Ce paramètre peut être sélectionné s’il est possible et pratique pour votre véhicule de revenir en arrière au niveau du dépôt. Cette décision peut dépendre de la largeur de la route et de la densité du trafic ou de la présence au dépôt d’un parking où les véhicules peuvent entrer et faire demi-tour.
  • 1 (Côté droit du véhicule) : le dépôt doit se trouver du côté droit du véhicule lorsque celui-ci s'en approche ou s'en éloigne. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la droite.
  • 2 (Côté gauche du véhicule) : lorsque le véhicule atteint et quitte le lieu du dépôt, le bord du trottoir doit être du côté gauche du véhicule. Le demi-tour est interdit. Cette option est généralement utilisée avec des véhicules tels que des bus qui doivent arriver à l'arrêt de bus par la gauche.
  • 3 (Pas de demi-tour) : lorsque le véhicule s'approche du lieu du dépôt, le bord du trottoir peut être d'un côté quelconque du véhicule ; en revanche, le véhicule doit partir sans faire demi-tour.

L’attribut CurbApproach est conçu pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons un dépôt qui s'est produit du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder un dépôt du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre un dépôt sans laisser de voie de circulation entre le véhicule et le dépôt, vous choisissez 1 (Côté droit du véhicule) en France et aux États-Unis, mais 2 (Côté gauche du véhicule) au Royaume-Uni.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
routes

Spécifie un ou plusieurs itinéraires décrivant les caractéristiques d’un véhicule et d’un chauffeur. Un itinéraire peut être défini par des temps de service aux dépôts initial et final, une heure de début fixe ou souple, des coûts opérationnels basés sur le temps ou sur la distances, de nombreuses capacités, diverses contraintes sur la journée de travail d’un chauffeur, etc.

Vous pouvez spécifier les itinéraires avec les attributs suivants :

Name

Nom de l’itinéraire. Le nom doit être unique.

L'outil génère un nom au moment du calcul si la valeur de champ est Null ; par conséquent, la saisie d'une valeur est facultative dans la plupart des cas. Toutefois, vous devez obligatoirement entrer un nom si votre analyse inclut des pauses, des relais de tournée, des zones de tournée ou des ordres qui sont préattribués à un itinéraire, car le nom de l'itinéraire est utilisé comme clé étrangère dans ces circonstances. Les noms d’itinéraire ne sont pas sensibles à la casse.

StartDepotName

Nom du dépôt initial de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

Si la valeur de StartDepotName est nulle, l’itinéraire commence au premier ordre affecté. Omettre le dépôt initial est utile lorsque le point de départ du véhicule est inconnu ou sans rapport à votre problème. Cependant, si la valeur de StartDepotName est nulle, EndDepotName ne peut pas l’être.

Les dépôts de départ virtuels ne sont pas autorisés si les ordres ou les dépôts se situent dans plusieurs fuseaux horaires.

Si des livraisons sont prévues le long de l’itinéraire et que la valeur de StartDepotName est Null, la cargaison est supposée avoir été chargée sur le véhicule à un dépôt virtuel avant le début de l’itinéraire. Dans le cas d’un itinéraire sans passage à des relais, les ordres de livraison (ceux dont les valeurs DeliveryQuantities sont différentes de zéro dans Orders) sont chargés au dépôt initial ou au dépôt virtuel. Pour un itinéraire doté de passages à des relais, seuls les ordres de livraison avant le premier passage à un relais sont chargés au dépôt initial ou au dépôt virtuel.

EndDepotName

Nom du dépôt final de l’itinéraire. Ce champ est une clé étrangère du champ Name dans la classe Depots.

StartDepotServiceTime

Durée de desserte au dépôt initial. Cette valeur peut servir à modéliser le temps passé à charger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ temporel).

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (fournies par les valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les périodes de service au dépôt peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer vos propres estimations de temps.

EndDepotServiceTime

Durée de desserte au dépôt final. Cette valeur peut servir à modéliser le temps passé à décharger le véhicule. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre Time Field Units (Unités du champ temporel).

Les durées de desserte aux dépôts finaux et initiaux sont des valeurs fixes (fournies par les valeurs des champs StartDepotServiceTime et EndDepotServiceTime) et ne prennent pas en considération la charge réelle d’un itinéraire. Par exemple, le temps de chargement d'un véhicule au dépôt initial peut dépendre de la taille des ordres. Les périodes de service au dépôt peuvent être dotées de valeurs correspondant à une cargaison pleine ou une cargaison moyenne, ou vous pouvez effectuer vos propres estimations de temps.

EarliestStartTime

Première heure de début admissible pour l'itinéraire. Ce champ est utilisé par le solveur conjointement avec la fenêtre horaire du dépôt initial pour déterminer des heures de départ d'itinéraire faisables.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 8 h 00. La valeur par défaut est interprétée comme 8 h 00 à la date par défaut établie pour l’analyse.

Lors de la résolution d’un problème couvrant plusieurs fuseaux horaires, le fuseau horaire pour EarliestStartTime est le même que celui dans lequel se trouve le dépôt de départ.

LatestStartTime

Dernière heure de début admissible pour l’itinéraire.

Ce champ ne peut pas contenir de valeur nulle et sa valeur horaire par défaut est 10:00 AM. La valeur par défaut est interprétée comme 10 h 00 à la date par défaut établie pour l’analyse.

Lors de la résolution d’un problème couvrant plusieurs fuseaux horaires, le fuseau horaire pour LatestStartTime est le même que celui dans lequel se trouve le dépôt de départ.

ArriveDepartDelay

Ce champ enregistre le temps de trajet nécessaire pour accélérer le véhicule à des vitesses de déplacement normales, le décélérer à un arrêt et le retirer du réseau et l'y replacer (entrée et sortie d'un parking, par exemple). Si vous incluez une valeur ArriveDepartDelay, le solveur de tournées de véhicules est dissuadé d’envoyer de nombreux itinéraires pour traiter physiquement des ordres coïncidents.

Le coût de cette propriété est supporté entre des visites à des dépôts, des relais de tournée et des ordres non coïncidents. Par exemple, lorsqu'un itinéraire commence à un dépôt et visite le premier ordre, le retard d'arrivée/de départ total est ajouté au temps de trajet. Cela est également valable pour le déplacement du premier ordre au deuxième ordre. Si les deuxième et troisième ordres coïncident, la valeur de ArriveDepartDelay n’est pas ajoutée entre eux, car le véhicule n’a pas besoin de se déplacer. Si l'itinéraire mène à un relais de tournée, la valeur est de nouveau ajoutée au temps de trajet.

Même si un véhicule doit ralentir et s’arrêter pendant une pause et accélérer par la suite, le solveur de tournées de véhicules ne peut pas ajouter la valeur ArriveDepartDelay aux pauses. Cela signifie que si un itinéraire quitte un ordre, effectue une pause et continue jusqu'à l'ordre suivant, le retard d'arrivée/de départ est ajouté une seule fois, et non deux.

Prenons l’exemple de cinq ordres coïncidents dans une très haute tour, desservis par trois itinéraires différents. Trois retards d’arrivée/de départ sont alors concernés, car trois chauffeurs doivent trouver chacun une place de parking et entrer dans le même bâtiment. Si toutefois les ordres peuvent être desservis par un seul itinéraire au lieu de trois, un seul chauffeur doit se garer et pénétrer dans le bâtiment (un seul retard d’arrivée/de départ est engendré). Comme le solveur de tournées de véhicules essaie de réduire le coût, il tentera de limiter les retards d’arrivée/de départ et choisira donc l’option à un seul itinéraire. (Notez que plusieurs itinéraires peuvent être envoyés lorsque d'autres contraintes, comme des particularités, des fenêtres horaires ou des capacités, l'exigent.)

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

Capacities

Capacité maximale du véhicule. Vous pouvez spécifier une capacité de n’importe quelle dimension, comme le poids, le volume ou la quantité. Vous pouvez même spécifier plusieurs dimensions, par exemple le poids et le volume.

Entrez les capacités sans préciser d’unités. Si, par exemple, votre véhicule peut transporter 40 000 kilos, entrez 40000. Vous devez vous souvenir que la valeur est exprimée en kilos.

Si vous effectuez le suivi de plusieurs dimensions, séparez chaque valeur numérique par un espace. Si, par exemple, vous enregistrez le poids et le volume d’une livraison de 1 000 kilos et 3 mètres cube, respectivement, entrez 1000 3. Là encore, vous devez vous souvenir des unités utilisées, à savoir les kilos et les mètres cube dans ce cas. Vous devez également mémoriser l’ordre dans lequel vous saisissez les valeurs et leurs unités correspondantes.

Il est important de mémoriser les unités et l’ordre dans lequel vous les saisissez pour deux raisons : primo, pour pouvoir réinterpréter les informations ultérieurement et secundo, pour saisir correctement les valeurs dans les champs DeliveryQuantities et PickupQuantities des ordres. Notez que le solveur de tournées de véhicules traite simultanément les champs Capacities, DeliveryQuantities, et PickupQuantities pour éviter toute surcharge. Les unités ne peuvent pas être saisies dans le champ et l’outil VRP ne peut pas faire de conversion des unités. Vous devez saisir les valeurs pour les trois champs à l’aide des mêmes unités et le même ordre d’unités pour garantir que les valeurs sont interprétés de manière appropriée. Si vous combinez des unités ou modifiez l’ordre dans l’un des trois champs, des résultats indésirables s’affichent sans message d’avertissement. Il est recommandé de prédéfinir des unités et l’ordre dans lequel les saisir pour pouvoir vous y référer à tout moment lorsque vous entrez des valeurs dans ces trois champs.

Une chaîne vide ou une valeur Null représente l'infini. Les valeurs de capacité ne peuvent pas être négatives.

Si le champ Capacities contient un nombre insuffisant de valeurs par rapport aux champs DeliveryQuantities ou PickupQuantities de la classe des ordres, les valeurs restantes sont traitées comme étant infinies.

Le solveur de tournées de véhicules effectue un test booléen simple pour déterminer si les capacités sont dépassées. Si la valeur de capacité d'un itinéraire est supérieure ou égale à la quantité totale transportée, le solveur de tournées de véhicules suppose que la cargaison tient dans le véhicule. Cela peut toutefois s'avérer inexact, en fonction de la forme réelle de la cargaison et du véhicule. Par exemple, le solveur de tournées de véhicules autorise une sphère de 30 mètres cube dans un camion de 30 mètres cube qui mesure 2,40 mètres de large. Mais en réalité, comme la sphère mesure 3,85 mètres de diamètre, elle ne peut pas passer dans ce camion de 2,40 mètres de large.

FixedCost

Coût monétaire fixe encouru seulement si l'itinéraire est utilisé dans une solution (autrement dit, si des ordres lui sont attribués). Ce champ peut contenir des valeurs Null, ce qui indique un coût fixe de zéro. Ce coût fait partie du coût de fonctionnement total de l'itinéraire.

CostPerUnitTime

Coût monétaire encouru (par unité de temps de travail) pour la durée totale de l'itinéraire, y compris les temps de trajet, ainsi que le temps de service et le temps d'attente aux ordres, aux dépôts et les pauses. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 1.0.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

CostPerUnitDistance

Coût monétaire encouru (par unité de distance parcourue) pour la longueur de l'itinéraire (distance de trajet totale). Ce champ peut contenir des valeurs Null, ce qui indique un coût de zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre distance_units.

OvertimeStartTime

Durée du temps de travail standard, avant le calcul des heures supplémentaires. Ce champ peut contenir des valeurs Null, ce qui indique que les heures supplémentaires ne s'appliquent pas.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

Si, par exemple, le chauffeur doit percevoir lorsque la durée totale de la tournée dépasse huit heures, la valeur OvertimeStartTime est alors 480 (8 heures * 60 minutes/heure), si les unités de temps sont en exprimées en minutes.

CostPerUnitOvertime

Coût monétaire encouru par unité de temps d'heures supplémentaires. Ce champ peut contenir des valeurs nulles, ce qui indique que la valeur de CostPerUnitOvertime est la même que celle de CostPerUnitTime.

MaxOrderCount

Nombre maximal d'ordres autorisé sur l'itinéraire. Ce champ ne peut pas contenir de valeur Null et sa valeur par défaut est 30.

MaxTotalTime

Durée d'itinéraire maximale autorisée. La durée de l'itinéraire englobe le temps de trajet ainsi que la durée de desserte et le temps d'attente aux ordres, aux dépôts et les pauses. Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la durée de la tournée.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTotalTravelTime

Temps de trajet maximal admissible pour l'itinéraire. Le temps de trajet inclut uniquement le temps passé au volant sur le réseau, à l’exclusion de la durée de desserte ou du temps d’attente.

Ce champ peut contenir des valeurs nulles, ce qui indique qu’aucune contrainte n’est présente sur le temps de trajet maximal autorisé. La valeur de ce champ ne peut pas être supérieure à celle du champ MaxTotalTime.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTotalDistance

Distance de trajet maximale admissible pour l'itinéraire.

L’unité de cette valeur de champ est spécifiée par le paramètre distance_units.

Ce champ peut contenir des valeurs Null, ce qui indique qu'aucune contrainte n'est présente sur la distance de trajet maximale autorisée.

SpecialtyNames

Chaîne séparée par des espaces contenant les noms des particularités requises pour l'ordre. Une valeur Null indique que l'ordre n'inclut pas de particularités.

L'orthographe des spécialités répertoriées dans les classes Ordres et Itinéraires doit correspondre pour que le solveur de tournées de véhicules puisse les associer entre elles.

Pour décrire les particularités et leur fonctionnement, prenons l'exemple d'une société d'entretien des pelouses et d'élagage dont une partie de ses ordres nécessite l'usage d'un camion nacelle pour élaguer les grands arbres. L’entreprise saisit CamionNacelle dans le champ SpecialtyNames de ces ordres pour indiquer leur besoin spécifique. SpecialtyNames n’est pas renseigné pour les autres ordres. De la même manière, l’entreprise saisit également CamionNacelle dans le champ SpecialtyNames des itinéraires empruntés par des camions munis de flèches hydrauliques. Le champ n’est pas renseigné pour les autres itinéraires. Lors de l'analyse, le solveur de tournées de véhicules attribue des ordres sans besoin spécifique à n'importe quel itinéraire, mais il attribue les ordres nécessitant des camions nacelle uniquement aux itinéraires empruntés par ces derniers.

AssignmentRule

Spécifie la règle d’attribution de l’ordre à un itinéraire. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :

Ce champ ne peut pas contenir une valeur Null.

  • 1 (Inclure) : l'itinéraire est inclus dans l'analyse. Il s’agit de la valeur par défaut.
  • 2 (Exclure) : l'itinéraire est exclu de l'analyse.

Record Set
breaks

On compte les périodes de repos, ou pauses, pour les itinéraires d'une tournée de véhicules spécifiée. Une pause est précisément associée à un itinéraire et peut être prise une fois un ordre terminé, en cours de route vers un ordre ou avant de desservir un ordre. Elle possède une heure de début et une durée, pendant laquelle le chauffeur peut être rémunéré ou pas. Vous disposez de trois options pour définir le début d’une pause : en utilisant une fenêtre horaire, un temps de trajet maximal ou un temps de travail maximal.

Les interruptions des fenêtres horaires ne sont pas autorisées si les ordres ou dépôts sont dans plusieurs fuseaux horaires, sauf si les heures sont au format UTC.

Vous pouvez définir les propriétés des interruptions que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

RouteName

Nom de l’itinéraire auquel l’interruption s’applique. Même si une pause est précisément affectée à un itinéraire, de nombreuses pauses peuvent être affectées à un même itinéraire.

Ce champ, qui est une clé étrangère du champ Name dans les itinéraires, ne peut pas contenir de valeur nulle.

Precedence

Les valeurs de Precedence permettent de classer les pauses d'un itinéraire donné. Les pauses ayant une valeur de priorité de 1 interviennent avant celles dont la valeur est 2, et ainsi de suite.

Toutes les pauses doivent avoir une valeur de précédence, que ce soient des pauses en fonction d'une fenêtre horaire, d'un temps de trajet maximal ou d'un temps de travail maximal.

ServiceTime

Durée de la pause. Ce champ ne peut pas contenir de valeurs nulles. La valeur par défaut est 60.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

TimeWindowStart

Heure de début de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, les valeurs des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nulles. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

Une erreur est renvoyée au moment du calcul si leurs fenêtres horaires d'un itinéraire qui possède plusieurs pauses se chevauchent.

Les champs de fenêtres horaires dans les interruptions peuvent contenir une valeur horaire uniquement ou une valeur de date et d’heure dans un champ de date et ne peuvent pas être exprimés en tant qu’entiers représentant les millisecondes depuis l’heure Epoch. Le fuseau horaire des champs de fenêtres horaires est spécifié à l’aide du paramètre Utilisation du fuseau horaire pour les champs temporels. Si un champ temporel, tel que TimeWindowStart, contient une valeur d’heure uniquement (24h00, par exemple), nous supposons que la date est celle spécifiée par le paramètre Date par défaut (default_date dans Python). L’utilisation de valeurs de date et d’heure (le 11/07/2012 à 24 h 00, par exemple) vous permet de spécifier des fenêtres horaires qui couvrent deux jours ou plus. Cela s’avère utile lorsqu’une pause doit être prise avant et après minuit.

TimeWindowEnd

Heure de fin de la fenêtre horaire de la pause. Une heure de début et une heure de fin doivent être spécifiées.

Si ce champ possède une valeur, MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doivent être nuls. Et la valeur des champs MaxTravelTimeBetweenBreaks et MaxCumulWorkTime doit également être nulle pour toutes les autres pauses de la couche d’analyse.

MaxViolationTime

Ce champ indique la durée de violation maximale autorisée pour une pause en fonction d'une fenêtre horaire. Une fenêtre horaire fait l'objet d'une violation lorsque l'heure d'arrivée ne coïncide pas avec la plage horaire.

Une valeur égale à zéro indique que la fenêtre horaire ne peut pas faire l’objet d’une violation ; cela signifie que la fenêtre horaire est stricte. Une valeur différente de zéro précise le retard maximal autorisé. Par exemple, la pause peut commencer jusqu’à 30 minutes après la fin de sa fenêtre horaire, mais le retard est pénalisé conformément au paramètre d’importance de la violation de fenêtre horaire.

Cette propriété peut être nulle. Une valeur nulle avec les valeurs TimeWindowStart et TimeWindowEnd indique que la durée de violation autorisée n’est pas limitée. Si MaxTravelTimeBetweenBreaks ou MaxCumulWorkTime possède une valeur, la valeur de MaxViolationTime doit être nulle.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxTravelTimeBetweenBreaks

Temps de trajet maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de trajet est cumulé à partir de la fin de la pause précédente ou, si aucune pause n'a encore été prise, à partir du début de l'itinéraire.

S’il s’agit de la dernière pause de l’itinéraire, MaxTravelTimeBetweenBreaks indique également le temps de trajet maximal pouvant être cumulé de la dernière pause jusqu’au dépôt final.

Ce champ est conçu pour limiter le temps de conduite d’une personne avant une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur minutes et si MaxTravelTimeBetweenBreaks a pour valeur 120, le chauffeur pourra prendre une pause au bout de deux heures de conduite. Pour offrir une deuxième pause au bout de deux autres heures de conduite, la propriété MaxTravelTimeBetweenBreaks de cette deuxième pause doit avoir pour valeur 120.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxCumulWorkTime doit être nulle pour pouvoir calculer correctement une analyse.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

MaxCumulWorkTime

Temps de travail maximal pouvant être cumulé avant que la pause ne soit prise. Le temps de travail est toujours cumulé à partir du début de l'itinéraire.

Le temps de travail correspond à la somme du temps de trajet et de la durée de desserte aux ordres, dépôts et pendant les pauses. Notez toutefois que le temps d'attente en est exclu, à savoir le temps passé par un itinéraire (ou un chauffeur) à attendre qu'une fenêtre horaire ne commence à un ordre ou à un dépôt.

Ce champ limite le temps de travail d’une personne avant une pause. Si, par exemple, l’unité temporelle de l’analyse est définie sur minutes, MaxCumulWorkTime a pour valeur 120 et ServiceTime 15, le chauffeur pourra prendre une pause de 15 minutes au bout de deux heures de travail.

Reprenons le dernier exemple et partons du principe qu'une deuxième pause s'avère nécessaire au bout de trois autres heures de travail. Pour spécifier cette pause, vous affecteriez la valeur 315 (cinq heures et 15 minutes) à la propriété MaxCumulWorkTime de la deuxième pause. Ce nombre comprend les valeurs de MaxCumulWorkTime et ServiceTime de la pause précédente, ainsi que les trois heures de temps de travail supplémentaires avant d’accorder la deuxième pause. Pour éviter de prendre prématurément des pauses en fonction d'un temps de travail maximal, n'oubliez pas qu'elles cumulent le temps de travail à partir du début de l'itinéraire et que ce temps de travail comprend le temps de service aux précédents dépôts et ordres et pendant les précédentes pauses.

Si ce champ possède une valeur, la valeur de TimeWindowStart, TimeWindowEnd, MaxViolationTime et MaxTravelTimeBetweenBreaks doit être nulle pour pouvoir calculer correctement une analyse.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

IsPaid

Valeur booléenne indiquant si la pause est payée ou non. Définir ce champ sur 1 indique que le temps consacré à la pause est inclus dans le calcul de coût d’itinéraire et la détermination des heures supplémentaires. La valeur 0 indique le contraire. La valeur par défaut est 1.

Sequence

Indique la séquence de la pause sur son itinéraire. Ce champ peut contenir des valeurs nulles, qui ont pour effet de sélectionner la séquence de pauses par le solveur. Les valeurs de séquence en entrée sont spécifiées ; elles doivent être positives et uniques pour chaque itinéraire (partagées par les passages aux dépôts de relais, les ordres et les pauses), mais elles n’ont pas besoin de commencer à 1 ni d’être contiguës.

Record Set
time_units

Unités de temps pour toutes les valeurs de champ basées sur le temps dans l'analyse. Nombre d’entités et d’enregistrements d’une analyse VRP ont des champs qui permettent de stocker des valeurs de temps, comme ServiceTime pour les ordres et CostPerUnitTime pour les itinéraires. Pour optimiser la saisie des données, ces valeurs de champ n’incluent pas d’unités. Toutes les valeurs de champ basées sur une distance doivent être entrées dans les mêmes unités, et ce paramètre sert à spécifier les unités de ces valeurs.

  • SecondsL’unité temporelle est définie en secondes.
  • MinutesL’unité temporelle est définie en minutes.
  • HoursL’unité temporelle est définie en heures.
  • DaysL’unité temporelle est définie en jours.

Notez que les champs temporels en sortie utilisent les mêmes unités que celles spécifiées par ce paramètre.

String
distance_units

Unités de distance pour toutes les valeurs de champ basées sur une distance dans l'analyse. Nombre d’entités et d’enregistrements d’une analyse VRP ont des champs qui permettent de stocker des valeurs de distance, comme MaxTotalDistance et CostPerUnitDistance pour les itinéraires. Pour optimiser la saisie des données, ces valeurs de champ n’incluent pas d’unités. Toutes les valeurs de champ basées sur une distance doivent être entrées dans les mêmes unités, et ce paramètre sert à spécifier les unités de ces valeurs.

  • MetersL’unité linéaire est exprimée en mètres.
  • KilometersL’unité linéaire est exprimée en kilomètres.
  • FeetL’unité linéaire est exprimée en pieds.
  • YardsL’unité linéaire est exprimée en yards.
  • MilesL’unité linéaire est exprimée en miles.
  • NauticalMilesL’unité linéaire est exprimée en milles nautiques.

Notez que les champs de distance en sortie utilisent les mêmes unités que celles spécifiées par ce paramètre.

String
analysis_region
(Facultatif)

Région dans laquelle l’analyse sera effectuée. Si aucune valeur n’est spécifiée pour ce paramètre, l’outil calcule automatiquement le nom de la région en fonction de l’emplacement des points en entrée. Le nom de la région ne doit être défini que si la détection automatique du nom de région n’est pas pertinente pour les entrées.

Pour indiquer une région, utilisez l’une des valeurs suivantes :

  • EuropeLa région d’analyse sera l’Europe.
  • JapanLa région d’analyse sera le Japon.
  • KoreaLa région d’analyse sera la Corée.
  • MiddleEastAndAfricaLa région d’analyse sera le Moyen-Orient et l’Afrique.
  • NorthAmericaLa région d’analyse sera l’Amérique du Nord.
  • SouthAmericaLa région d’analyse sera l’Amérique du Sud.
  • SouthAsiaLa région d’analyse sera l’Asie du Sud.
  • ThailandLa région d’analyse sera la Thaïlande.
Héritage :

Les noms des régions suivantes ne sont plus pris en charge et seront retirés dans une version ultérieure. Si vous spécifiez l’un des noms des régions obsolètes, l’outil lui attribue automatiquement un nom de région pris en charge.

  • Grèce est remplacé par Europe
  • Inde est remplacé par Asie du Sud-Est
  • Océanie est remplacé par Asie du Sud-Est
  • Asie du Sud-Est est remplacé par Asie du Sud-Est
  • Taïwan est remplacé par Asie du Sud-Est

String
default_date
(Facultatif)

Date par défaut pour les valeurs de champs temporels qui spécifient un heure de la journée sans inclure de date. Vous pouvez trouver ces champs temporels dans différents paramètres en entrée, tels que les attributs ServiceTime des paramètres Ordres et Pauses.

Date
uturn_policy
(Facultatif)

Précise s’il convient d’empêcher ou d’autoriser la zone de desserte à réaliser des demi-tours aux jonctions. La terminologie suivante permet de mieux comprendre les valeurs des paramètres : une jonction est un point où un segment de rue se termine et se connecte potentiellement à un ou plusieurs autres segments. Une pseudo-jonction est un point où exactement deux rues se connectent. Une intersection est un point où trois rues ou plus se connectent. Une voie sans issue est un endroit où un segment de rue se termine sans se connecter à aucun autre.

  • ALLOW_UTURNSLes demi-tours sont autorisés partout. L'autorisation des demi-tours implique que le véhicule peut faire demi-tour au niveau de n'importe quelle jonction et repasser par la même rue. Il s’agit de la valeur par défaut.
  • NO_UTURNSLes demi-tours sont interdits à toutes les jonctions (pseudo-jonctions, intersections et voies sans issue). Notez toutefois que des demi-tours peuvent être autorisés même si cette option est choisie. Pour empêcher les demi-tours au niveau des incidents et des ressources, définissez la valeur de champ CurbApproach de façon à interdire les demi-tours.
  • ALLOW_DEAD_ENDS_ONLYLes demi-tours sont interdits au niveau de toutes les jonctions, sauf celles ayant une seule entité rue connectée (voie sans issue).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYLes demi-tours sont interdits aux pseudo-jonctions où deux rues adjacentes se rencontrent, mais sont autorisés aux intersections et dans les voies sans issue. Ceci empêche les manœuvres au milieu de la route lorsqu’une longueur de route est numérisée sous forme de deux entités rues.

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Mode de déplacement est défini sur Personnalisé, qui est la valeur par défaut.

String
time_window_factor
(Facultatif)

Spécifie l’importance de respecter les fenêtres horaires.

  • HighL’importance est placée sur le respect de l’heure d’arrivée aux arrêts plutôt qu’à la réduction du temps de conduite. C’est par exemple l’option choisie par les organisations qui doivent impérativement respecter l’heure de livraison ou qui placent le service clientèle au rang de leurs principales préoccupations.
  • MediumL’importance est équilibrée entre la réduction du temps de conduite et le respect de l’heure d’arrivée. Il s’agit de la valeur par défaut.
  • LowL’importance est placée sur la réduction du temps de conduite plutôt qu’au respect de l’heure d’arrivée aux arrêts. Vous pouvez utiliser ce paramètre si vous avez un retard croissant de traitement des demandes de service. Si vous souhaitez répondre à un plus grand nombre de commandes au cours d’une journée ou rattraper un retard, vous pouvez utiliser cette option même si les clients risquent d’être gênés par votre arrivée tardive.
String
spatially_cluster_routes
(Facultatif)

Précise si les itinéraires seront regroupés spatialement.

  • CLUSTER (True) : des points d’origine dynamiques sont automatiquement créés pour tous les itinéraires et les ordres attribués à un itinéraire particulier sont spatialement agrégés. L'agrégation des ordres permet de regrouper les tournées dans des zones plus petites et de réduire le nombre d'intersections entre différentes lignes d'itinéraires, mais elle a également tendance à augmenter le temps de trajet total.
  • NO_CLUSTER (False) : aucun point d’origine dynamique n’est créé. Choisissez cette option si des zones de tournée sont spécifiées.

Boolean
route_zones
(Facultatif)

Délimite les territoires de travail pour des itinéraires donnés. Une zone de tournée est une entité surfacique utilisée pour contraindre des itinéraires à traiter uniquement les ordres se trouvant dans la zone spécifiée ou s’en approchant. Les exemples suivants sont des cas dans lesquels les zones de tournée peuvent être utiles :

  • Certains de vos employés n’ont pas les permis nécessaires pour travailler dans certaines régions ou communautés. Vous pouvez créer une zone de tournée stricte pour qu’ils ne visitent des ordres que dans des zones où ils remplissent les conditions requises.
  • L’un de vos véhicules tombe souvent en panne et vous souhaitez réduire le temps de réponse en faisant en sorte qu’il ne visite que les ordres proches de votre garage. Vous pouvez créer une zone de tournée souple ou stricte pour faire en sorte que le véhicule reste proche.

Lorsque vous précisez les Zones de tournées, vous pouvez définir les propriétés pour chacune, comme leur nom, à l’aide des attributs suivants :

ObjectID

Champ d'ID géré par le système.

RouteName

Nom de l'itinéraire auquel cette zone s'applique. Une zone de tournée peut avoir un itinéraire associé au maximum. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

IsHardZone

Valeur booléenne indiquant une zone de tournée stricte ou souple. Une valeur True indique que la zone de tournée est stricte, c'est-à-dire qu'un ordre se trouvant en dehors du polygone de zone de tournée ne peut pas être attribué à l'itinéraire. La valeur par défaut est 1 (True). Une valeur False (0) indique que ces ordres peuvent encore être attribués, mais que leur coût de desserte est pondéré par une fonction basée sur la distance euclidienne depuis la zone de tournée. Cela signifie qu'à mesure que la distance en ligne droite entre la zone souple et l'ordre augmente, la probabilité que l'ordre soit attribué à l'itinéraire décroît.

Feature Set
route_renewals
(Facultatif)

Indique les dépôts intermédiaires que les itinéraires peuvent visiter pour recharger ou décharger la cargaison qu’ils livrent ou collectent. Un relais de tournée relie spécifiquement un itinéraire à un dépôt. La relation indique que l'itinéraire peut passer à un relais (pour recharger ou décharger en cours de route) au dépôt associé.

Les relais de tournée peuvent permettre de modéliser des scénarios dans lesquels un véhicule enlève une cargaison complète de livraisons au dépôt initial, dessert les ordres, retourne au dépôt pour renouveler sa charge de livraisons et continue à desservir d’autres ordres. Par exemple, dans le cas d’une livraison de gaz propane, le véhicule peut effectuer plusieurs livraisons jusqu’à ce que sa cuve soit presque vide, visiter un point de ravitaillement, puis poursuivre ses livraisons.

Voici quelques règles et options à prendre en compte :

  • Le point de rechargement/déchargement, ou la localisation de relais, peut être différent du dépôt initial ou final.
  • Chaque itinéraire peut avoir une ou plusieurs localisations de relais.
  • Une localisation de relais peut être utilisée plusieurs fois par un même itinéraire.
  • Lorsque plusieurs dépôts de relais sont disponibles pour un itinéraire, le plus proche est sélectionné par le solveur.

Vous devez définir les propriétés des relais de tournée que vous spécifiez, comme le nom du dépôt où le relais de tournée peut se produire— utilisant des attributs :

ObjectID

Champ d'ID géré par le système.

DepotName

Nom du dépôt où ce relais a lieu. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les dépôts.

RouteName

Nom de l’itinéraire auquel ce relais de tournée s’applique. Ce champ ne peut pas contenir de valeur nulle. C’est une clé étrangère du champ Name dans les itinéraires.

ServiceTime

Durée de desserte du relais. Ce champ peut contenir une valeur Null qui indique un temps de service égal à zéro.

L’unité de cette valeur de champ est spécifiée par le paramètre time_units.

La durée de chargement d'un véhicule à un dépôt de relais peut dépendre de la taille du véhicule et de son degré de chargement. La durée de desserte d'un relais de tournée est toutefois une valeur fixe et elle ne prend pas en considération la charge réelle. Il est possible d'attribuer à une durée de desserte relais une valeur correspondant à une cargaison complète, une cargaison moyenne ou une autre estimation en temps de votre choix.

Record Set
order_pairs
(Facultatif)

Apparie les ordres de collecte et de livraison pour qu’ils soient traités par la même tournée. La spécification de couples d’ordres empêche l’analyse d’attribuer un seul des ordres à un itinéraire : les deux ordres sont attribués au même itinéraire ou aucun ordre n’est attribué.

Il est parfois nécessaire que l’enlèvement et la livraison soient appariés pour les ordres. Par exemple, un coursier peut demander à l’un de ses employés de collecter un colis prioritaire d’un ordre pour le livrer à un autre sans retourner au dépôt, ou au centre de tri, afin de minimiser le temps de livraison. Il est possible d’utiliser des paires d’ordres pour attribuer ces ordres associés à la même tournée avec la séquence adéquate. Vous pouvez également attribuer des restrictions pour limiter le temps d’immobilisation du paquet dans le véhicule. Par exemple, un prélèvement sanguin doit être transporté du cabinet médical au laboratoire d’analyses en moins de deux heures.

Certaines situations peuvent nécessiter deux paires d’ordres. Supposons, par exemple, que vous souhaitez transporter une personne âgée de son domicile au cabinet de son médecin, puis la ramener chez elle. Le trajet de son domicile au cabinet correspond à une paire d’ordres avec une heure d’arrivée souhaitée chez le médecin. Le trajet de retour, quant à lui, correspond à une autre paire avec une heure de prise en charge souhaitée.

Vous devez définir les propriétés des paires d’ordres que vous spécifiez, comme les noms des deux ordres— utilisant des attributs :

ObjectID

Champ d'ID géré par le système.

FirstOrderName

Nom du premier ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

SecondOrderName

Nom du second ordre de la paire. Ce champ est une clé étrangère du champ Name dans les ordres.

Le premier ordre du couple doit être un ordre d’enlèvement. Autrement dit, la valeur de son champ DeliveryQuantities est nulle. Le second ordre du couple doit être un ordre de livraison, la valeur de son champ PickupQuantities est nulle. La quantité enlevée au premier ordre doit correspondre à la quantité livrée au second ordre. Dans les cas où aucune capacité n'est utilisée, les deux ordres peuvent avoir des quantités égales à zéro.

Les quantités des ordres ne sont pas chargées ou déchargées à des dépôts.

MaxTransitTime

Temps de transit maximal pour la paire. Le temps de transit correspond au laps de temps s'écoulant entre l'heure de départ du premier ordre et l'heure d'arrivée au second. Cette contrainte limite le temps passé dans le véhicule, ou temps de trajet, entre les deux ordres. Lorsqu'un véhicule transporte des personnes ou des denrées périssables, le temps de trajet est généralement plus court que celui d'un véhicule transportant des paquets ou des denrées non périssables. Ce champ peut contenir des valeurs nulles, ce qui indique qu'aucune contrainte n'est présente sur le temps de trajet.

L’unité de la valeur de ce champ est spécifiée par la propriété timeUnits de l’objet d’analyse.

Le temps de transit excessif (mesuré en fonction du temps de trajet direct entre des paires d’ordres) peut être suivi et pondéré par le solveur. Vous pouvez donc faire en sorte que le solveur de tournées de véhicules adopte une des trois approches suivantes :

  • réduire le temps de transit excessif, sans tenir compte de l'augmentation du coût de trajet de la flotte,
  • trouver une solution équilibrée entre la durée totale de la violation et le coût de trajet ;
  • ignorer le temps de transit excessif et réduire à la place le coût de trajet de la flotte.

En attribuant un niveau d’importance au paramètre excess_transit_factor, vous choisissez l’une de ces trois approches. Quel que soit le niveau d’importance, le solveur renvoie toujours une erreur en cas de dépassement de la valeur MaxTransitTime.

Record Set
excess_transit_factor
(Facultatif)

Spécifie l’importance de la réduction du temps de transit excessif des paires d’ordres. Le temps de transit excessif correspond à la quantité de temps dépassant le temps nécessaire pour effectuer le trajet direct entre une paire d’ordres. Les pauses des chauffeurs ou les trajets aux ordres et aux dépôts intermédiaires peuvent être à l’origine de ces temps excessifs.

  • HighLe solveur tente de trouver une solution présentant le moins de temps de transit excessif possible entre des ordres appariés, mais augmente les coûts de trajet globaux. Cette option est généralement utilisée pour transporter des personnes entre des paires d’ordres et raccourcir le temps de trajet. Il est caractéristique des services de taxi.
  • MediumL’importance est équilibrée entre la réduction du temps de transit excessif et la réduction du coût global de la solution. Il s’agit de la valeur par défaut.
  • LowL’importance est placée sur la réduction du coût global de la solution, quel que soit le temps de transit excessif. Ce paramètre est fréquemment utilisé par les messageries privées. Ces sociétés transportant des paquets plutôt que des personnes, elles ne se préoccupent pas du temps de trajet. Cette option permet aux coursiers de servir les couples d’ordres dans le bon ordre et de réduire le coût global de la solution.
String
point_barriers
(Facultatif)

Utilisez ce paramètre pour spécifier un ou plusieurs points devant servir de restrictions temporaires ou représentant un délai ou une distance supplémentaire risquant d’être nécessaire pour se déplacer dans les rues sous-jacentes. Par exemple, une interruption ponctuelle peut servir à représenter un arbre tombé dans une rue ou le temps d’attente à un passage à niveau.

L’outil impose une limite de 250 points pouvant être ajoutés comme barrières.

Vous pouvez définir les propriétés des interruptions ponctuelles que vous spécifiez, comme leur nom ou type d’interruption, en utilisant des attributs suivants :

Name

Nom de l'interruption.

BarrierType

Spécifie si l’interruption ponctuelle restreint complètement la circulation ou ajoute un délai ou une distance lorsqu’elle est traversée. La valeur de cet attribut peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option indiqué entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers l’interruption. L’interruption est désignée par le terme d’interruption ponctuelle de restriction, car elle agit comme une restriction.

  • 2 (Added Cost (Coût ajouté)) : lorsque l’interruption est traversée, le temps de déplacement ou la distance augmente de la valeur spécifiée dans le champ Additional_Time, Additional_Distance ou AdditionalCost. Ce type d’interruption est désigné sous le terme d’interruption ponctuelle à coût ajouté.

Additional_Time

Temps de trajet ajouté lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) est temporelle.

Cette valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Measurement Units (Unités de mesure).

Additional_Distance

Distance ajoutée lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) repose sur une distance.

La valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Measurement Units (Unités de mesure).

AdditionalCost

Coût ajouté lorsque l’interruption est franchie. Ce champ n’est applicable qu’aux interruptions à coût ajouté et lorsque la valeur du paramètre Measurement Units (Unités de mesure) n’est ni temporelle ni basée sur une distance.

FullEdge

Spécifie la façon dont les interruptions ponctuelles de restriction sont appliquées aux tronçons au cours de l’analyse. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (False (Faux)) : autorise la circulation sur le tronçon jusqu’à l’interruption mais pas la traversée de cette dernière. Il s'agit de la valeur par défaut.
  • 1 (True (Vrai)) : limite la circulation sur l’ensemble du tronçon associé.

CurbApproach

Spécifie le sens de circulation affecté par l’interruption. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (Either side of vehicle (Peu importe le côté)) : l’interruption affecte la circulation sur le tronçon dans les deux sens.
  • 1 (Right side of vehicle (Côté droit du véhicule)) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur droite. Les véhicules qui parcourent le même tronçon mais pour lesquels l’interruption est située sur le côté gauche ne sont pas concernés par l’interruption.
  • 2 (Left side of vehicle (Côté gauche du véhicule)) : seuls sont affectés les véhicules pour lesquels l’interruption est située sur leur gauche. Les véhicules qui parcourent le même tronçon mais pour lesquels l’interruption est située sur le côté droit ne sont pas concernés par l’interruption.

Les jonctions étant des points et n’ayant donc pas de côté, les interruptions situées sur des jonctions affectent tous les véhicules quel que soit leur sens de circulation.

L’attribut CurbApproach fonctionne avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-Unis) et circulation à gauche (Royaume-Uni). Tout d’abord, imaginons une ressource qui se trouve du côté gauche d’un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d’aborder la ressource du côté droit ou du côté gauche du véhicule. Par exemple, pour atteindre une ressource sans laisser une voie de circulation entre le véhicule et la ressource, vous choisissez 1 (Right side of vehicle (Côté droit du véhicule)) en France et aux États-Unis, mais 2 (Left side of vehicle (Côté gauche du véhicule)) au Royaume-Uni.

Bearing

Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol.

En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule.

L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point.

BearingTol

La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing. Si la valeur de champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué.

Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst tente d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon.

NavLatency

Ce champ n’est utilisé au cours du processus de calcul que si les champs Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si les champs Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité.

Les unités de NavLatency sont les mêmes que celles de l’attribut d’impédance.

Feature Set
line_barriers
(Facultatif)

Utilisez ce paramètre pour spécifier une ou plusieurs lignes interdisant la circulation partout où les lignes intersectent les rues. Par exemple, un défilé ou une manifestation qui bloque la circulation sur plusieurs segments de rue peut être modélisé avec une interruption linéaire. Une interruption linéaire peut également délimiter rapidement un périmètre autour de plusieurs routes et filtrer ainsi les itinéraires possibles en évitant les parties indésirables du réseau de transport.

L’outil impose une limite au nombre de rues que vous pouvez restreindre à l’aide du paramètre Line Barriers (Interruptions linéaires). Bien qu’aucune limite ne soit imposée au nombre de lignes que vous pouvez spécifier comme barrières linéaires, le nombre combiné de rues intersectées par toutes les lignes ne peut pas dépasser 500.

Pour spécifier les interruptions linéaires, vous pouvez définir des propriétés de type nom et interruption pour chaque interruption linéaire à l’aide des attributs suivants :

Name

Nom de l'interruption.

Feature Set
polygon_barriers
(Facultatif)

Utilisez ce paramètre pour spécifier les polygones qui restreignent entièrement la circulation ou adaptez proportionnellement le temps ou la distance nécessaire pour se déplacer dans les rues intersectées par les polygones.

Le service impose une limite au nombre de rues que vous pouvez restreindre à l’aide du paramètre Polygon Barriers (Interruptions surfaciques). Bien qu’aucune limite ne soit imposée au nombre de polygones que vous pouvez spécifier comme interruptions polygonales, le nombre combiné de rues intersectées par tous les polygones ne peut pas dépasser 2 000.

Vous pouvez définir les propriétés des interruptions polygonales que vous spécifiez, comme leur nom ou type d’interruption, en utilisant des attributs suivants :

Name

Nom de l'interruption.

BarrierType

Spécifie si l’interruption restreint entièrement le trajet ou proportionne le coût (par exemple, temps ou distance) de parcours correspondant. Le champ peut prendre l’une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l’option fourni entre parenthèses) :

  • 0 (Restriction) : interdit la circulation à travers toute partie de l’interruption. L’interruption est désignée par le terme d’interruption polygonale de restriction, car elle empêche les déplacements dans les rues intersectées par l’interruption. Ce type d’interruption sert notamment à modéliser les zones inondées de la rue où la circulation est impossible.

  • 1 (Scaled Cost (Coût proportionné)) : adapte le coût (par exemple, temps ou distance) nécessaire pour se déplacer dans les rues sous-jacentes selon un facteur spécifié avec le champ ScaledTimeFactor ou ScaledDistanceFactor. Si les rues sont partiellement couvertes par l’interruption, le temps de trajet ou la distance est réparti et proportionné. Par exemple, un facteur de 0,25 signifie que le déplacement dans les rues sous-jacentes est censé être quatre fois plus rapide que d’habitude. Un facteur de 3,0 signifie au contraire qu’il prendra trois fois plus de temps que d’habitude. Ce type d’interruption est désigné sous le terme d’interruption polygonale à coût proportionné. Il permet de modéliser des tempêtes qui réduisent la vitesse des déplacements dans des régions spécifiques, par exemple.

ScaledTimeFactor

Il s'agit du facteur de multiplication du temps de trajet des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné et si le paramètre Unités de mesure est temporel.

ScaledDistanceFactor

Il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné et si le paramètre Unités de mesure est basé sur la distance.

ScaledCostFactor

Il s’agit du facteur de multiplication du coût des rues intersectées par l’interruption. La valeur du champ doit être supérieure à zéro.

Ce champ est actif uniquement pour les interruptions à coût proportionné si le paramètre Unités de mesure n'est pas temporel ou basé sur la distance.

Feature Set
use_hierarchy_in_analysis
(Facultatif)

Indique si vous souhaitez utiliser une hiérarchie lorsque vous recherchez les meilleurs itinéraires.

  • Option activée (True) : vous recherchez des itinéraires en utilisant une hiérarchie. Lorsque vous utilisez une hiérarchie, l’outil identifie les rues d’ordre supérieur (comme les autoroutes, avant les rues d’ordre inférieur, comme les routes locales) ; il permet de simuler la préférence du conducteur favorisant les autoroutes plutôt que des routes locales, même si cela implique un trajet plus long. Cela est particulièrement vrai lorsque vous recherchez un itinéraire vers un site éloigné. En effet, pour les longs trajets, les conducteurs préfèrent généralement emprunter des autoroutes qui leur permettent d’éviter les arrêts, les intersections et les tournants. La recherche hiérarchique est plus rapide, surtout pour les longues distances, car l’outil identifie le meilleur itinéraire à partir d’un sous-ensemble de rues relativement plus restreint.
  • Option désactivée (False) : vous recherchez des itinéraires sans utiliser la hiérarchie. Si la hiérarchie n’est pas utilisée, l’outil tient compte de toutes les rues pour trouver le meilleur itinéraire sans identifier nécessairement les rues d’ordre supérieur. Cette valeur sert généralement à trouver des itinéraires courts dans une ville.

L’outil utilise automatiquement la hiérarchie si la distance en ligne droite entre les ordres, dépôts ou ordres et dépôts est supérieure à 50 milles (80 km), même si ce paramètre est désactivé (False).

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Travel Mode (Mode de déplacement) est défini sur Custom (Personnalisé), qui est la valeur par défaut.

Boolean
restrictions
[restrictions,...]

Restrictions allant être respectées par l’outil lorsque vous recherchez les meilleurs itinéraires.

Une restriction représente une préférence ou une exigence relative à un trajet. Dans la plupart des cas, les restrictions sont utilisées pour interdire certaines routes. Par exemple, la restriction Avoid Toll Roads (Éviter les routes à péage) permet d’obtenir un itinéraire qui n’inclut les routes à péage que lorsque cela est inévitable pour visiter un incident ou une ressource. Height Restriction (Restriction de hauteur) permet de contourner les dégagements qui sont inférieurs à la hauteur du véhicule. Si vous transportez des matières corrosives dans votre véhicule, l’utilisation de la restriction Any Hazmat Prohibited (Substances dangereuses interdites) empêche le transport de ces matériaux sur les routes qui l’interdisent.

Remarque :

Les valeurs que vous indiquez pour ce paramètre sont ignorées, sauf si le paramètre Mode de déplacement est défini sur Personnalisé.

Remarque :

Certaines restrictions nécessitent une valeur supplémentaire. Cette valeur doit être associée au nom de la restriction et à un paramètre précis destiné à fonctionner avec la restriction. Vous pouvez identifier ces restrictions si leurs noms apparaissent sous la colonne AttributeName du paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs). Spécifiez le champ ParameterValue pour le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) afin que la restriction soit correctement utilisée lors de la recherche des routes traversables.

Remarque :

Certaines restrictions sont uniquement prises en charge dans certains pays. Leur disponibilité est indiquée par région dans la liste ci-dessous. Parmi les restrictions dont la disponibilité est limitée au sein d’une région, vous pouvez déterminer si la restriction est disponible dans un pays en particulier en examinant la table de la section Liste des pays sur la page Web de couverture d’analyse du réseau. Si un pays a la valeur Yes (Oui) dans la colonne des attributs logistiques, la restriction dotée de la disponibilité sélectionnée dans la région est prise en charge dans ce pays. Si vous spécifiez des noms de restrictions qui ne sont pas disponibles dans le pays dans lequel se trouvent les incidents, le service ignore les restrictions non valides. Le service ignore également les restrictions dont la valeur du paramètre d’attribut Restriction Usage (Utilisation de restriction) est comprise entre 0 et 1 (voir le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs)). Il interdit toutes les restrictions dont la valeur du paramètre Restriction Usage (Utilisation de restriction) est supérieure à 0.

Le service prend en charge les restrictions suivantes :

  • Any Hazmat ProhibitedLes résultats n’intègrent pas les routes où le transport de marchandises dangereuses est interdit.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Avoid Carpool RoadsLes résultats ne prendront pas en compte les routes qui sont exclusivement destinées aux véhicules de covoiturage (avec un nombre élevé d’occupants).Disponibilité : Tous les pays
  • Avoid Express LanesLes résultats éviteront les voies rapides.Disponibilité : Tous les pays
  • Avoid FerriesLes résultats éviteront les navettes.Disponibilité : Tous les pays
  • Avoid GatesLes résultats ne prendront pas en compte les routes sur lesquelles des barrières sont dressées, par exemple les accès verrouillés ou les allées contrôlées par des gardiens.Disponibilité : Tous les pays
  • Avoid Limited Access RoadsLes résultats ne prendront pas en compte les autoroutes à accès limité.Disponibilité : Tous les pays
  • Avoid Private RoadsLes résultats éviteront les routes qui ne sont pas publiques.Disponibilité : Tous les pays
  • Avoid Roads Unsuitable for PedestriansLes résultats éviteront les routes qui ne sont pas adaptées aux piétons.Disponibilité : Tous les pays
  • Avoid StairwaysLes résultats ne prendront pas en compte tous les escaliers sur un itinéraire adapté aux piétons.Disponibilité : Tous les pays
  • Avoid Toll RoadsLes résultats éviteront les routes à péage prévues pour la circulation des automobiles.Disponibilité : Tous les pays
  • Avoid Toll Roads for TrucksLes résultats éviteront les routes à péage prévues pour la circulation des automobiles.Disponibilité : Tous les pays
  • Avoid Truck Restricted RoadsLes résultats évitent les routes où les camions sont interdits, sauf pour effectuer des livraisons.Disponibilité : Tous les pays
  • Avoid Unpaved RoadsLes résultats éviteront les routes non goudronnées (terre battue, gravier, etc.).Disponibilité : Tous les pays
  • Axle Count RestrictionLes résultats n’incluront pas les routes sur lesquelles les camions dotés du nombre spécifié d’essieux sont interdits. Le nombre d’essieux peut être indiqué à l’aide du paramètre de restriction Nombre d’essieux.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Driving a BusLes résultats n’incluront pas les routes où les bus sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Driving a TaxiLes résultats n’incluront pas les routes où les taxis sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Driving a TruckLes résultats n’incluront pas les routes où les camions sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Driving an AutomobileLes résultats n’incluront pas les routes où les automobiles sont interdites. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Driving an Emergency VehicleLes résultats n’incluront pas les routes où les véhicules d’urgence sont interdits. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Height RestrictionLes résultats n’incluront pas les routes où la hauteur des véhicules dépasse la hauteur maximale autorisée pour la route. La hauteur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Vehicle Height (meters) (Hauteur du véhicule (mètres)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Kingpin to Rear Axle Length RestrictionLes résultats n’incluront pas les routes où la longueur des véhicules dépasse la longueur maximale autorisée entre le pivot central et l’essieu arrière pour tous les camions sur la route. La longueur entre le pivot central et l’essieu arrière peut être indiquée à l’aide du paramètre de restriction Longueur entre le pivot central et l’essieu arrière (mètres).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Length RestrictionLes résultats n’incluront pas les routes où la longueur des véhicules dépasse la longueur maximale autorisée pour la route. La longueur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Vehicle Length (meters) (Longueur du véhicule (mètres)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Preferred for PedestriansLes résultats privilégieront les itinéraires adaptés à la circulation des piétons.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Riding a MotorcycleLes résultats n’incluront pas les routes où les motos sont interdites. Cette restriction permet également de s’assurer que les résultats respecteront les rues à sens unique.Disponibilité : Tous les pays
  • Roads Under Construction ProhibitedLes résultats n’incluront pas les routes qui sont en construction.Disponibilité : Tous les pays
  • Semi or Tractor with One or More Trailers ProhibitedLes résultats n’incluront pas les routes où les semi-remorques sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Single Axle Vehicles ProhibitedLes résultats n’incluront pas les routes où les véhicules à un seul essieu sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Tandem Axle Vehicles ProhibitedLes résultats n’incluront pas les routes où les véhicules à essieu tandem sont interdits.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Through Traffic ProhibitedLes résultats n’intègrent pas les routes où le trafic de passage (non local) est interdit.Disponibilité : Tous les pays
  • Truck with Trailers RestrictionLes résultats n’incluront pas les routes où les camions dotés du nombre spécifié de remorques sont interdits. Le nombre de remorques sur le camion peut être indiqué à l’aide du paramètre de restriction Nombre de remorques.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Use Preferred Hazmat RoutesLes résultats privilégieront les routes désignées pour transporter tout type de marchandises dangereuses.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Use Preferred Truck RoutesLes résultats privilégieront les routes destinées aux camions, telles que les routes faisant partie du réseau national (stipulées dans la loi National Surface Transportation Assistance aux États-Unis), les routes désignées comme routes pour les camions par l’État ou la province, ou encore les routes de prédilection des chauffeurs routiers lorsqu’ils conduisent dans une région.Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • WalkingLes résultats n’incluront pas les routes où les piétons sont interdits.Disponibilité : Tous les pays
  • Weight RestrictionLes résultats n’incluront pas les routes où le poids des véhicules dépasse le poids maximal autorisé pour la route. Le poids d’un véhicule peut être spécifié à l’aide du paramètre de restriction Vehicle Weight (kilograms) (Poids du véhicule (kilogrammes)).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Weight per Axle RestrictionLes résultats n’incluront pas les routes où le poids par essieu des véhicules dépasse le poids par essieu maximal autorisé pour la route. Le poids d’un véhicule par essieu peut être spécifié à l’aide du paramètre de restriction Poids par essieu du véhicule (kilogrammes).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
  • Width RestrictionLes résultats n’incluront pas les routes où la largeur des véhicules dépasse la largeur maximale autorisée pour la route. La largeur d’un véhicule peut être spécifiée à l’aide du paramètre de restriction Largeur du véhicule (mètres).Disponibilité : Sélectionner des pays en Amérique du Nord et en Europe
String
attribute_parameter_values
(Facultatif)

Utilisez ce paramètre pour spécifier des valeurs supplémentaires requises par un attribut ou une restriction (par exemple, pour spécifier si la restriction interdit, évite ou préfère la circulation sur des routes soumises à restrictions). Si la restriction consiste à éviter ou à préférer certaines routes, vous pouvez utiliser ce paramètre pour préciser le degré d'évitement ou de préférence. Par exemple, vous pouvez choisir de ne jamais emprunter de routes à péage, de les éviter autant que possible ou de les préférer.

Remarque :

Les valeurs que vous indiquez pour ce paramètre sont ignorées, sauf si le paramètre Mode de déplacement est défini sur Personnalisé.

Si vous spécifiez le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) d’une classe d’entités, les noms de champs sur la classe d’entités doivent correspondre aux champs, comme suit :

  • AttributeName : nom de la restriction.
  • ParameterName : nom du paramètre associé à la restriction. Une restriction peut avoir une ou plusieurs valeurs de champs ParameterName selon son utilisation prévue.
  • ParameterValue : valeur de ParameterName utilisée par l’outil lors de l’évaluation de la restriction.

Le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs) dépend du paramètre Restrictions. Le champ ParameterValue ne s’applique que si le nom de la restriction est spécifié comme valeur du paramètre Restrictions.

Dans le paramètre Attribute Parameter Values (Valeurs des paramètres d’attributs), chaque restriction (affichée sous la forme AttributeName) se voit attribuer une valeur de champ ParameterName, Restriction Usage (Utilisation d’une restriction), qui détermine si la restriction interdit, évite ou préfère la circulation sur les routes associées à la restriction et précise le degré d’évitement ou de préférence des routes. Le champ ParameterName Restriction Usage (Utilisation d’une restriction) peut se voir attribuer l’une des valeurs de chaîne suivantes ou leurs valeurs numériques équivalentes affichées entre parenthèses :

  • PROHIBITED (-1) - La circulation sur les routes utilisant la restriction est totalement interdite.
  • AVOID_HIGH (5) : il est très improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • AVOID_MEDIUM (2) : il est improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • AVOID_LOW (1.3) : il est assez improbable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_LOW (0.8) : il est assez probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_MEDIUM (0.5) : il est probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.
  • PREFER_HIGH (0.2) : il est très probable que l’outil inclue dans l’itinéraire les routes associées à la restriction.

Dans la plupart des cas, vous pouvez utiliser la valeur par défaut, PROHIBITED, comme valeur Restriction Usage (Utilisation d’une restriction) si la restriction dépend d’une caractéristique du véhicule, telle que sa hauteur. Toutefois, dans certains cas, la valeur Restriction Usage (Utilisation d’une restriction) dépend de vos préférences d’itinéraire. Par exemple, pour l’attribut Restriction Usage (Utilisation d’une restriction), la valeur par défaut de la restriction Avoid Toll Roads (Éviter les routes à péage) est AVOID_MEDIUM. Cela signifie que lorsque cette restriction est utilisée, l’outil contourne les routes à péage, dans la mesure du possible. AVOID_MEDIUM indique également l’importance d’éviter les routes à péage lorsque vous recherchez le meilleur itinéraire : dans ce cas, la priorité est moyenne. Si vous choisissez AVOID_LOW, il est moins important d’éviter les routes à péage ; la sélection de AVOID_HIGH, en revanche, donne une plus grande importance à ce choix et justifie ainsi la génération par le service d’itinéraires plus longs afin d’éviter les péages. Si vous optez pour PROHIBITED, vous interdisez formellement la circulation sur des routes à péage, ce qui rend impossible la fréquentation d’un tronçon d’une route à péage dans la préparation de l’itinéraire. Gardez à l’esprit que l’évitement ou l’interdiction de routes à péage, et l’évitement du paiement de péages, peut constituer un objectif dans certains cas. En revanche, d’autres préféreront circuler sur des routes à péage, car il leur apparaît plus important d’éviter les embouteillages plutôt que d’économiser sur les coûts de péage. Dans ce dernier cas, vous devez choisir PREFER_LOW, PREFER_MEDIUM ou PREFER_HIGH comme valeur du paramètre Restriction Usage (Utilisation d’une restriction). Plus la préférence est élevée, plus l’outil devra dévier afin d’autoriser la circulation sur les routes associées à la restriction.

Record Set
populate_route_lines
(Facultatif)

Spécifie si la ligne de l’itinéraire en sortie doit être générée.

  • Option activée (True) : les itinéraires en sortie ont la forme exacte des rues sous-jacentes.
  • Option désactivée (False) : aucune forme n’est générée pour les itinéraires en sortie, mais les itinéraires contiennent toujours les informations tabulaires concernant la solution. Vous ne pouvez pas générer de feuilles de route si aucune ligne d’itinéraire n’est créée.

Lorsque le paramètre Forme d’itinéraire est défini sur Géométrie réelle, vous pouvez contrôler davantage la généralisation de la forme d’itinéraire en utilisant les valeurs appropriées pour le paramètre Tolérance de simplification des lignes de tournées.

Quelle que soit la valeur que vous choisissez pour le paramètre Forme d’itinéraire, les itinéraires les plus appropriés sont toujours déterminés en réduisant au maximum le déplacement dans les rues, jamais avec la distance en ligne droite. Cela signifie que seules les formes d'itinéraire sont différentes, pas les rues sous-jacentes dans lesquelles effectuer la recherche d'itinéraire.

Boolean
route_line_simplification_tolerance
(Facultatif)

Le niveau de simplification de la géométrie des lignes en sortie pour les itinéraires et les directions.

La valeur que indiquez pour ce paramètre est ignorée, sauf si le paramètre Travel Mode (Mode de déplacement) est défini sur Custom (Personnalisé), qui est la valeur par défaut.

L’outil ignore également ce paramètre si le paramètre populate_route_lines est désactivé (False).

La simplification conserve les points critiques sur un itinéraire, comme les virages dans les intersections, pour définir la forme globale de l'itinéraire et supprimer d'autres points. La distance de simplification que vous spécifiez est le décalage maximal autorisé de la ligne simplifiée par rapport à la ligne d'origine. La simplification d’une ligne diminue le nombre de sommets qui appartiennent à la géométrie de l’itinéraire. Cette opération améliore le temps de traitement de l’outil.

Linear Unit
populate_directions
(Facultatif)

Spécifie si l’outil génère des feuilles de route pour chaque itinéraire.

  • Activé (True dans Python) : la feuille de route sera générée et configurée en fonction des valeurs des paramètres Directions Language (Langue de la feuille de route), Directions Style Name (Nom de style de la feuille de route) et Directions Distance Units (Unités de distance de la feuille de route).
  • Désactivé (False dans Python) : les feuilles de route ne sont pas générées et l’outil renvoie une couche Directions vide.

Boolean
directions_language
(Facultatif)

Langue allant être utilisée lors de la génération de la feuille de route.

Ce paramètre n’est utilisé que lorsque le paramètre Populate Directions (Charger les feuilles de route) est activé (True dans Python).

La valeur du paramètre peut être spécifiée avec l’un des codes de langue de deux ou cinq caractères suivants :

  • ar—Arabe
  • bg—Bulgare
  • bs—Bosniaque
  • ca—Catalan
  • cs—Tchèque
  • da—Danois
  • de—Allemand
  • el—Grec
  • en—Anglais
  • es—Espagnol
  • et—Estonien
  • fi—Finlandais
  • fr—Français
  • he—Hébreu
  • hr—Croate
  • hu—Hongrois
  • id—Indonésien
  • it—Italien
  • ja—Japonais
  • ko—Coréen
  • lt—Lituanien
  • lv—Letton
  • nb—Norvégien
  • nl—Néerlandais
  • pl—Polonais
  • pt-BR—Portugais (Brésil)
  • pt-PT—Portugais (Portugal)
  • ro—Roumain
  • ru—Russe
  • sk—Slovaque
  • sl—Slovène
  • sr—Serbe
  • sv—Suédois
  • th—Thaï
  • tr—Turc
  • uk—Ukrainien
  • vi—Vietnamien
  • zh-CN—Chinois (Chine)
  • zh-HK—Chinois (Hong Kong)
  • zh-TW—Chinois (Taïwan)

L’outil recherche d’abord une correspondance parfaite pour la langue spécifiée comportant n’importe quelle localisation de langue. S’il n’existe aucune correspondance parfaite, il essaie de faire correspondre la famille de langues. Si une correspondance n’est toujours pas trouvée, l’outil renvoie la feuille de route dans la langue par défaut, à savoir l’anglais. Imaginons, par exemple, que la langue de la feuille de route spécifiée est es-MX (espagnol du Mexique), l’outil renvoie la feuille de route en espagnol car il prend en charge le code de langue es, mais pas le code es-MX.

Attention :

Si une langue prend en charge la localisation telle que le portugais du Brésil (pt-BR) et le portugais standard (pt-PT), spécifiez la famille de langues ainsi que la localisation. Si vous spécifiez uniquement la famille de langues, l’outil ne fait pas correspondre la famille de langue et renvoie la feuille de route dans la langue par défaut, c’est-à-dire en anglais. Ainsi, lorsque la langue de la feuille de route spécifiée est pt, l’outil renvoie la feuille de route en anglais étant donné qu’il ne peut pas déterminer si la feuille de route doit être en pt-BR ou pt-PT.

String
directions_style_name
(Facultatif)

Spécifie le nom du style de mise en forme des feuilles de route. Ce paramètre n’est utilisé que lorsque le paramètre Populate Directions (Charger les feuilles de route) est activé (True dans Python).

  • NA DesktopLe style sera une feuille de route tournant par tournant adaptée à l’impression.
  • NA NavigationLe style sera une feuille de route conçue pour un dispositif de navigation dans un véhicule.
String
travel_mode
(Facultatif)

Le mode de transport qui sera modélisé dans l’analyse. Les modes de déplacement sont gérés dans ArcGIS Online et peuvent être configurés par l’administrateur de votre organisation pour refléter les processus de l’organisation. Indiquez le nom d’un mode de déplacement pris en charge par votre organisation.

Pour obtenir la liste des noms des modes de déplacements pris en charge, exécutez l’outil Get Travel Modes (Obtenir les modes de déplacement) de la boîte à outils Utilitaires sous la connexion au serveur SIG que vous avez utilisée pour accéder à l’outil. L’outil Get Travel Modes (Obtenir les modes de déplacement) ajoute une table nommée Modes de déplacement pris en charge à l’application. N’importe quelle valeur du champ Travel Mode Name dans la table des modes de déplacement pris en charge peut être spécifiée en entrée. Vous pouvez également indiquer la valeur du champ Travel Mode Settings en entrée. L’exécution de l’outil est ainsi accélérée, car il n’a pas besoin de rechercher les paramètres en fonction du nom du mode de déplacement.

La valeur par défaut, Custom (Personnalisé), vous permet de configurer un mode de déplacement personnalisé à l’aide des paramètres du mode de déplacement personnalisé (UTurn at Junctions (Demi-tours aux jonctions), Use Hierarchy (Utiliser la hiérarchie), Restrictions, Attribute Parameter Values (Valeurs des paramètres d’attributs) et Impedance (Impédance)). Les valeurs par défaut des paramètres du mode de trajet personnalisé modélisent les déplacements en voiture. Vous pouvez également choisir Custom (Personnalisé) et définir les paramètres du mode de trajet personnalisé répertoriés ci-dessus pour modéliser un piéton qui marche très rapidement ou un camion doté d’une hauteur donnée, d’un poids en particulier et qui transporte des matières dangereuses. Vous pouvez essayer différents paramètres afin d’obtenir les résultats d’analyse qui vous intéressent. Une fois les paramètres d’analyse identifiés, collaborez avec l’administrateur de votre organisation pour enregistrer ces paramètres dans le cadre d’un mode de déplacement nouveau ou existant afin que tous les membres de votre organisation puissent exécuter l’analyse avec les mêmes paramètres.

Attention :

Lorsque vous choisissez Custom (Personnalisé), les valeurs que vous définissez pour les paramètres du mode de déplacement personnalisé sont incluses dans l’analyse. Si vous spécifiez un autre mode de déplacement (défini par votre organisation), les valeurs que vous définissez pour les paramètres du mode de déplacement personnalisé sont ignorées. L’outil les remplace par les valeurs du mode de déplacement spécifié.

String
impedance
(Facultatif)

Spécifie l’impédance. Il s’agit d’une valeur représentant l’effort ou le coût de déplacement le long des segments de route ou sur d’autres portions du réseau de transport.

Le temps de trajet est une impédance : une voiture peut mettre 1 minute à parcourir un mile sur une route déserte. Les temps de trajet peuvent varier selon le mode de déplacement : un piéton peut mettre plus de 20 minutes à parcourir le même mile. Il est par conséquent important de choisir l’impédance appropriée au mode de déplacement que vous modélisez.

La distance à parcourir peut également être une impédance ; la longueur d’une route en kilomètres peut être considérée comme une impédance. En ce sens, la distance à parcourir est la même pour tous les modes : un kilomètre pour un piéton est également un kilomètre pour une voiture. (Ce qui peut changer, ce sont les voies d’accès que les différents modes sont autorisés à emprunter. Cela affecte la distance entre les points et est modélisé par les paramètres du mode de déplacement.)

Attention :

La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Mode de déplacement est défini sur Personnalisé, qui est la valeur par défaut.

  • TravelTimeLes données de trafic historique et réel sont utilisées. Cette option est idéale pour modéliser le temps de déplacement sur route à une heure donnée aux données de vitesse du trafic réel lorsqu’elles sont disponibles. Lorsque vous utilisez cette option, vous pouvez éventuellement définir le paramètre attributaire (km/h) pour spécifier la limite de vitesse physique à laquelle le véhicule peut circuler.
  • MinutesLes vitesses moyennes historiques pour les données automobiles sont utilisées, pas les données de trafic en temps réel.
  • TruckTravelTimeLes données de trafic historique et réel sont utilisées, mais la vitesse est plafonnée selon les limitations de vitesse indiquées pour les camions. Il est idéal pour modéliser le temps de déplacement sur route à une heure donnée. Lorsque vous utilisez cette option, vous pouvez éventuellement définir le paramètre attributaire (km/h) pour spécifier la limite de vitesse physique à laquelle le camion peut circuler.
  • TruckMinutesLes données de trafic réel ne sont pas utilisées, mais la vitesse la plus basse parmi les vitesses moyennes historiques pour les automobiles est utilisée dans le respect des limitations de vitesse indiquées pour les camions.
  • WalkTimeLa vitesse correspond par défaut à une vitesse de 5 km/heure sur toutes les routes et les voies, mais cette valeur peut être configurée via le paramètre attributaire (km/h).
  • TimeAt1KPHLa vitesse correspond par défaut à une vitesse de 1 km/heure sur toutes les routes et les voies. Il est impossible de modifier la vitesse au moyen d’un paramètre attributaire.
  • Drive TimeLes temps de trajet en voiture sont modélisés. Ces temps de trajet sont dynamiques et fluctuent selon la circulation dans les zones où les données de trafic sont disponibles. Il s’agit de la valeur par défaut.
  • Truck TimeLes temps de trajet en camion sont modélisés. Ces temps de trajet sont statiques pour chaque route et ne fluctuent pas selon la circulation.
  • Walk TimeLes temps de trajet piéton sont modélisés.

Si vous choisissez une impédance temporelle, telle que TravelTime, TruckTravelTime, Minutes, TruckMinutes ou WalkTime, le paramètre Unités des bornes doit être défini sur une valeur de temps. En revanche, si vous choisissez une impédance de distance, telle que Miles ou Kilomètres, la valeur Unités des bornes doit exprimer une distance.

Héritage :

Les valeurs d’impédance Drive Time (Temps de trajet), Truck Time (Durée du trajet pour camions), Walk Time (Durée du trajet à pied) et Travel Distance (Distance à parcourir) ne sont plus prise en charge et seront retirées dans une version ultérieure. Si vous utilisez l’une de ces valeurs, l’outil utilise la valeur du paramètre Time Impedance (Impédance de temps) pour les valeurs temporelles et celle du paramètre Distance Impedance (Paramètre d’impédance) pour les valeurs basées sur la distance.

String
time_zone_usage_for_time_fields
(Facultatif)

Indique le fuseau horaire des champs date-heure en entrée pris en charge par l’outil. Ce paramètre spécifie le fuseau horaire pour les champs suivants : TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2, TimeWindowEnd2, InboundArriveTime et OutboundDepartTime pour les ordres. TimeWindowStart1, TimeWindowEnd1, TimeWindowStart2 et TimeWindowEnd2 pour les dépôts. EarliestStartTime et LatestStartTime pour les itinéraires. TimeWindowStart et TimeWindowEnd pour les pauses.

  • GEO_LOCALLes valeurs date-heure associées aux ordres ou dépôts sont dans le fuseau horaire dans lequel les ordres et les dépôts se trouvent. Pour les itinéraires, les valeurs date-heure sont basées sur le fuseau horaire où se trouve le dépôt de début pour l’itinéraire. Si un itinéraire n’a pas de dépôt de départ, tous les ordres et dépôts de l’ensemble des itinéraires doivent être dans un seul et même fuseau horaire. Pour les interruptions, les valeurs date-heure sont basées sur le fuseau horaire des itinéraires. Par exemple, si le dépôt se situe dans une zone qui suit l’heure normale de l’Est et que ses premières valeurs de fenêtre horaire (spécifiées comme TimeWindowStart1 et TimeWindowEnd1) sont 8 h 00 et 17 h 00, les valeurs de fenêtre horaire seront traitées comme 8 h 00 et 17 h 00, heure normale de l’Est.
  • UTCLes valeurs date-heure associées aux ordres ou dépôts sont exprimées en temps universel coordonné (UTC) et ne sont pas basées sur le même fuseau horaire que les ordres ou les dépôts. Par exemple, si le dépôt se situe dans une zone qui suit l’heure normale de l’Est et si ses premières valeurs de fenêtre horaire (spécifiées comme TimeWindowStart1 et TimeWindowEnd1) sont 8 h 00 et 17 h 00, les valeurs de fenêtre horaire seront considérées comme 12 h 00 et 21 h 00, heure normale de l’Est, en tenant compte de l’heure d’été.
  • GEO_LOCALGEO_LOCAL
  • UTCUTC

Le fait de spécifier les valeurs date-heure en UTC est utile si vous ne connaissez pas le fuseau horaire dans lequel les ordres ou les dépôts se situent ou si vous avez des ordres ou des dépôts dans plusieurs fuseaux horaires et si vous souhaitez que toutes les valeurs date-heures commencent en simultané. L’option UTC s’applique uniquement lorsque votre jeu de données réseau définit un attribut de fuseau horaire. Sinon, toutes les valeurs de date et d’heure sont toujours traitées en tant que GEO_LOCAL.

String
save_output_layer
(Facultatif)

Précise si les paramètres de l’analyse seront enregistrés comme fichier de couche d’analyse réseau. Vous ne pouvez pas utiliser ce fichier directement, même lorsque vous ouvrez le fichier dans une application ArcGIS Desktop telle qu’ArcMap. Celui-ci doit être envoyé au support technique Esri, qui évaluera la qualité des résultats renvoyés par l’outil.

  • Option activée (True) : le fichier de couche d’analyse de réseau est enregistré. Le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer l’emplacement du fichier téléchargé en affichant la valeur du paramètre Output Network Analysis Layer (Couche d’analyse de réseau en sortie) dans l’entrée correspondant à l’exécution de l’outil dans l’historique de géotraitement de votre projet. Dans ArcMap, l’emplacement du fichier peut être déterminé via l'option Copier l'emplacement dans le menu contextuel du paramètre Couche d'analyse de réseau en sortie de l’entrée correspondant à l’exécution de l’outil dans la fenêtre Résultats du géotraitement.
  • Option désactivée (False) : n’enregistre pas le fichier de couche d’analyse réseau. Il s’agit de l’option par défaut.

Boolean
overrides
(Facultatif)

Remarque :

Ce paramètre n’est destiné qu’à un usage interne.

String
save_route_data
(Facultatif)

Indique si la sortie inclut un fichier .zip contenant une géodatabase fichier avec les entrées et sorties de l’analyse dans un format qui peut servir à partager les couches d’itinéraires avec ArcGIS Online ou Portal for ArcGIS.

  • Option activée (True) : les données d’itinéraires sont enregistrées en tant que fichier .zip. Le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer l’emplacement du fichier téléchargé en affichant la valeur du paramètre Output Route Data (Données d’itinéraires en sortie) dans l’entrée correspondant à l’exécution de l’outil dans l’historique de géotraitement de votre projet. Dans ArcMap, l’emplacement du fichier peut être déterminé via l'option Copier l'emplacement dans le menu contextuel du paramètre Données d'itinéraires en sortie de l’entrée correspondant à l’exécution de l’outil dans la fenêtre Résultats du géotraitement.

  • Option désactivée (False) : les données d’itinéraire ne sont pas enregistrées en tant que fichier. Il s’agit de l’option par défaut.

Boolean
time_impedance
(Facultatif)

La valeur d’impédance basée sur le temps représente le temps de trajet le long des segments de route ou sur d’autres portions du réseau de transport.

Remarque :
Si l’impédance du mode de déplacement, spécifiée via le paramètre Impedance (Impédance), est basée sur le temps, les valeurs des paramètres Time Impedance (Impédance de temps) et Impedance (Impédance) doivent être identiques. Sinon, le service renvoie une erreur.
  • MinutesImpédance de temps : minutes.
  • TravelTimeImpédance de temps : temps de trajet
  • TimeAt1KPHImpédance de temps : temps de trajet à un kilomètre/heure
  • WalkTimeImpédance de temps : temps de trajet à pied
  • TruckMinutesImpédance de temps : minutes pour les camions.
  • TruckTravelTimeImpédance de temps : temps de trajet pour les camions
String
distance_impedance
(Facultatif)

La valeur d’impédance basée sur une distance représente la distance de trajet le long des segments de route ou sur d’autres portions du réseau de transport.

Remarque :
Si l’impédance du mode de déplacement, spécifiée via le paramètre Impedance (Impédance), est basée sur une distance, les valeurs des paramètres Distance Impedance (Impédance de distance) et Impedance (Impédance) doivent être identiques. Sinon, le service renvoie une erreur.
  • MilesImpédance de distance : miles.
  • KilometersImpédance de distance : kilomètres.
String
populate_stop_shapes
(Facultatif)

Spécifie si l’outil doit créer les formes des arrêts affectés et non affectés en sortie.

  • Option activée (True) : les arrêts affectés et non affectés en sortie sont créés sous forme d’entités ponctuelles. Cela peut être utile pour distinguer visuellement les arrêts affectés aux itinéraires et ceux qui ne le sont pas.

  • Option désactivée (False) : les arrêts affectés et non affectés en sortie sont créés sous forme de tables et sont dépourvus de formes. Il s’agit de l’option par défaut. Utilisez cette option seulement si votre application n’a pas besoin de visualiser les arrêts en sortie et fonctionne uniquement avec les attributs des arrêts.

Boolean
output_format
(Facultatif)

Spécifie le format dans lequel les entités de sortie sont renvoyées.

  • Feature SetLes entités en sortie sont renvoyées en tant que classes d’entités et tables. Il s’agit de l’option par défaut.
  • JSON FileLes entités en sortie sont renvoyées sous forme d’un fichier compressé contenant une représentation JSON des sorties. Lorsque cette option est spécifiée, la sortie est un fichier unique (portant l’extension .zip) qui contient un ou plusieurs fichiers JSON (dont l’extension est .json) pour chacune des sorties créées par le service.
  • GeoJSON FileLes entités en sortie sont renvoyées sous forme d’un fichier compressé contenant une représentation GeoJSON des sorties. Lorsque cette option est spécifiée, la sortie est un fichier unique (portant l’extension .zip) qui contient un ou plusieurs fichiers GeoJSON (dont l’extension est .geojson) pour chacune des sorties créées par le service.

Lorsqu’un format en sortie basé sur un fichier, tel que JSON File (Fichier JSON) ou GeoJSON File (Fichier GeoJSON), est spécifié, aucune sortie n’est ajoutée à l’affichage car l’application (par exemple, ArcMap ou ArcGIS Pro) ne peut pas afficher le contenu du fichier de résultats. À la place, le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer la localisation du fichier téléchargé en affichant la valeur du paramètre Output Result File (Fichier de résultats en sortie) dans l’entrée correspondant à l’opération de l’outil dans l’historique de géotraitement du projet. Dans ArcMap, la localisation du fichier peut être déterminée via l’option Copy Location (Copier la localisation) dans le menu contextuel du paramètre Output Result File (Fichier de résultats en sortie) de l’entrée correspondant à l’opération de l’outil dans la fenêtre Geoprocessing Results (Résultats du géotraitement).

String
ignore_invalid_order_locations
(Facultatif)

Spécifie si les ordres non valides sont ignorés pour le calcul de la tournée de véhicules.

  • Option activée (True) : le calcul ignore les ordres non valides et renvoie une solution, s’il n’a rencontré aucune autre erreur. Si vous devez générer des itinéraires et les transmettre immédiatement aux chauffeurs, vous pouvez ignorer les ordres non valides, calculer et distribuer les itinéraires à vos chauffeurs. Résolvez ensuite les ordres non valides du dernier calcul et intégrez-les dans l’analyse VRP pour le prochain jour de travail.

  • Option désactivée (False) : le calcul échoue si des ordres non valides sont rencontrés. Un ordre non valide est un ordre que le solveur de tournées de véhicules ne peut pas atteindre. Un ordre peut être inatteignable pour différentes raisons, notamment : il se trouve sur un élément de réseau interdit, il ne figure pas du tout sur le réseau ou il se situe sur une portion déconnectée du réseau.

Boolean
locate_settings
(Facultatif)

Utilisez ce paramètre pour spécifier les paramètres qui affectent le mode de localisation des entrées. Il s’agit par exemple de la distance de recherche maximale à utiliser pour localiser les entrées sur le réseau ou des sources de réseau utilisées pour la localisation.

En savoir plus sur la localisation des entrées

La valeur du paramètre est spécifiée en tant qu’objet JSON. L’objet JSON vous permet de spécifier un JSON de localisateur pour toutes les entités en entrée de l’analyse. Vous pouvez également spécifier un remplacement pour une entrée en particulier. Le remplacement vous permet d’avoir différents paramètres pour chaque entrée d’analyse.

L’objet JSON de localisateur possède les propriétés suivantes :

  • tolerance et toleranceUnits : vous permettent de contrôler la distance de recherche maximale lors de la localisation des entrées. Si aucune localisation de réseau valide n’est détectée dans cette distance, les entités en entrée sont considérées comme non localisées. Une faible tolérance de recherche diminue la probabilité de localisation sur la rue incorrecte, mais augmente celle de ne pas trouver de localisation de réseau valide. La valeur du paramètre toleranceUnits doit être l’une des valeurs suivantes :
    • esriCentimeters
    • esriDecimalDegrees
    • esriDecimeters
    • esriFeet
    • esriInches
    • esriIntFeet
    • esriIntInches
    • esriIntMiles
    • esriIntNauticalMiles
    • esriIntYards
    • esriKilometers
    • esriMeters
    • esriMiles
    • esriMillimeters
    • esriNauticalMiles
    • esriYards
  • sources : vous permet de contrôler la source de réseau à utiliser pour la localisation. Par exemple, vous pouvez configurer l'analyse de sorte à localiser les entrées sur les rues, mais non sur les trottoirs. La liste des sources possibles de localisation est spécifique au jeu de données réseau auquel ce service fait référence. Seules les sources qui sont présentes dans la matrice des sources sont utilisées pour la localisation. Les sources sont spécifiées sous forme de matrice d’objets qui comportent chacune la propriété suivante :
    • name : nom de la classe d’entités source de réseau pouvant servir à localiser les entrées.
  • allowAutoRelocate : vous permet de contrôler si les entrées pour lesquelles il existe des champs de localisation de réseau peuvent être relocalisées automatiquement au moment du calcul afin de garantir des champs de localisation routables et valides pour l’analyse. Si la valeur est true, les points situés sur des éléments de réseau restreints et les points affectés par des interruptions sont relocalisés vers la localisation routable la plus proche. Si la valeur est false, les champs de localisation de réseau sont utilisés tels quels, même si les points sont inaccessibles, et le calcul risque d’échouer. Même si la valeur est false, les entrées sans champ de localisation ou avec des champs de localisation incomplets sont localisées au cours de l’analyse.
Remarque :
À ce stade, la matrice sources ne permet pas de spécifier des noms de source différents. En outre, allowAutoRelocate est toujours true car le service ne prend pas en charge les champs de localisation.

L’objet JSON Locate_Settings vous permet de spécifier un JSON de localisateur par défaut pour toutes les entités en entrée de l’analyse, ainsi que des remplacements pour chaque classe en entrée. Lorsque vous spécifiez les Locate_Settings JSON, vous devez modifier les propriétés suivantes ; tolerance, toleranceUnits et allowAutoRelocate. Si vous devez fournir un JSON de localisateur différent pour une classe en entrée en particulier, vous devez inclure une propriété de remplacements pour cette entrée. Le nom de la propriété doit correspondre au nom du paramètre en entrée. Le JSON de localisateur pour une entrée en particulier n’a pas besoin d’inclure toutes les propriétés. Il vous suffit d’indiquer celles qui sont différentes des propriétés du JSON de localisateur par défaut.

String

Sortie obtenue

NomExplicationType de données
out_unassigned_stops
Remarque :

Le JSON de ressource du service permet d’obtenir la valeur par défaut de ce paramètre. Ajoutez ?token=<yourToken>&f=pjson à l’URL du service pour accéder au JSON de ressource du service.

Ce paramètre permet d’accéder aux ordres qu’aucun itinéraire n’a pu atteindre. Vous pouvez également déterminer pourquoi les ordres n’ont pas pu être respectés et apporter les modifications nécessaires pour corriger le problème.

Feature Set
out_stops

Ce paramètre fournit des informations sur les arrêts effectués aux dépôts, aux ordres et pendant les pauses. Ces données précisent notamment les itinéraires qui comportent des arrêts, les heures de départ et d'arrivée, ainsi que la séquence des arrêts.

Feature Set
out_routes

Ce paramètre permet d’accéder aux conducteurs, véhicules et itinéraires d’une analyse en vue d’une tournée de véhicules.

Feature Set
out_directions

Ce paramètre permet d’accéder à la feuille de route détaillée de chaque itinéraire obtenu.

Feature Set
solve_succeeded

Indique si l’optimisation des tournées de véhicules a réussi.

Boolean
out_network_analysis_layer

Couche d’analyse de réseau, avec des propriétés configurées dans les paramètres d’outil, pouvant être utilisée à des fins d’analyse ou de débogage plus avancés dans la carte.

File
out_route_data

Fichier .zip contenant toutes les informations relatives à un itinéraire particulier.

File
out_result_file

Fichier .zip contenant les résultats de l’analyse avec un ou plusieurs fichiers pour chaque sortie. Le format d’un fichier est spécifié par le paramètre Output Format (Format en sortie).

File
output_network_analysis_layer_package

Paquetage de couche qui inclut une couche d’analyse de réseau avec les données et les paramètres utilisés dans l’analyse.

File
usage_cost

Ce paramètre renvoie les crédits utilisés par l’analyse.

Remarque :

Chaque analyse peut générer un nombre différent d’objets facturables et utilise par conséquent un nombre différent de crédits. Si le service ne parvient pas à déterminer le nombre de crédits, le paramètre usage_cost renvoie la valeur -1 pour credits.

JSON

Exemple de code

Exemple 1 d’utilisation de l’outil Résoudre le problème de tournées des véhicules (script autonome)

Le script Python ci-dessous illustre l’utilisation du service Solve Vehicle Routing Problem dans un script.

"""This example shows how to obtain the schema for the inputs, populate the inputs,
excute the tool and save the results.
"""

import sys
import time
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on 
# routes has same value as the Name field on input depots. AssignmentRule for routes
# is 1 which specifies that the tool must include the route.
# CostPerUnitTime and MaxOrderCount are fields that cannot have null values if the route
# is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# Call the tool
result = arcpy.VehicleRoutingProblem.SolveVehicleRoutingProblem(input_orders, input_depots, input_routes)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the output routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)
Exemple 2 d’utilisation de la fonction SolveVehicleRoutingProblem (script autonome)

L’exemple suivant décrit la procédure d’analyse de la tournée de véhicules pour un mode de déplacement personnalisé qui modélise les camions portant des chargements larges.

"""This example shows how to perform a vehicle routing problem analysis using a custom travel mode that
models trucks carrying wide load."""

import sys
import time
import json
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on routes has same
# value as the Name field on input depots. AssignmentRule for routes is 1 which specifies that the tool
# must include the route. CostPerUnitTime and MaxOrderCount are fields that cannot have null values if
# the route is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")

for attr_param in tt_dict["attributeParameterValues"]:
    if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
        attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)

# Call the tool
result = arcpy.VehicleRoutingProblem.SolveVehicleRoutingProblem(input_orders, input_depots,
                                                                input_routes, travel_mode=travel_mode)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the output routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)

Environnements

Cet outil n’utilise pas d’environnement de géotraitement.