GetRouteCostMatrix

Description

Le service GetRouteCostMatrix calcule le temps et les distances de trajet entre plusieurs lieux de départ et d’arrivée et renvoie l'itinéraire qui est soit le plus rapide, soit le plus court. Le résultat détermine la durée et la distance totales des itinéraires individuels (les coûts d'itinéraire). Par exemple, si vous saisissez quatre points de départ et quatre points d'arrivée, le système calcule un nombre total de 16 itinéraires.

Remarque : La réponse du service REST se présente au format JSON et la géométrie renvoyée au format GeoJSON. Lorsqu'une requête contient des paramètres de requête non valides dans l'URL GET, ou une charge utile non valide pour POST, une réponse d’erreurs cumulées est renvoyée dans un tableau JSON. Le nœud value de la réponse JSON est déprécié. Pour la vérification des erreurs, seul le nœud errors doit être utilisé.

Format d'URL GET HTTP

Les requêtes GET HTTP se présentent au format suivant : Les requêtes GET HTTP sont utilisées pour les calculs de coûts simples qui ne requièrent pas de charge utile JSON supplémentaire.


HTTP GET /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters
			

dbsource est le nom de la base de données contenant les données à utiliser pour l'itinéraire. Utilisez le nom de base de données indiqué dans l'outil de ressource de base de données de routage du module Enterprise Routing.

Format d'URL POST HTTP

Les requêtes POST HTTP se présentent au format suivant :


HTTP POST:  /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters
POST BODY: Content-Type:application/json {Route Data}
			

Route Data est le corps json POST (type de contenu : application/json) des indications d'itinéraire supplémentaires à utiliser dans le calcul si la liste des points d'entrée dépasse les limites du tampon URL de l'appelant. Cela inclut également les mises à jour transitoires ou la priorité des types de route. Pour plus d'informations sur ces options ainsi que des exemples, reportez-vous à la section Options GetRouteCostMatrix POST HTTP.

Paramètres de requête

Cette opération prend les paramètres de requête suivants.

Paramètre Type Obligatoire Description
startPoints Chaîne oui Lieux de départ de l'itinéraire au format : long,lat,long,lat,...,coordSys. Par exemple : -74.2,40.8,-73,42,epsg:4326
endPoints Chaîne oui Lieux d'arrivée de l'itinéraire au format : long,lat,long,lat,...,coordSys. Par exemple : -74.2,40.8,-73,42,epsg:4326
destinationSrs Chaîne non Système de coordonnées dans lequel renvoyer l'itinéraire et les géométries obtenues. Le système de coordonnées par défaut est celui des données utilisées.
optimizeBy Chaîne non Type d'optimisation à utiliser pour l'itinéraire. La valeur valide est time ou distance. La valeur par défaut est time.
returnDistance Booléen non Indications d'itinéraire incluant la distance parcourue. La valeur par défaut est true. Les deux paramètres returnDistance et returnTime ne peuvent pas prendre la valeur false dans la même requête.
distanceUnit Chaîne non Unités de renvoi de la distance. La valeur par défaut est m (mètre). Les valeurs disponibles sont les suivantes : m (mètre), km (kilomètre), yd (yard), ft (pied) et mi (mile).
returnTime Booléen non Les indications d'itinéraire incluent le temps nécessaire pour suivre une direction. La valeur par défaut est true. Les deux paramètres returnDistance et returnTime ne peuvent pas prendre la valeur false dans la même requête.
timeUnit Chaîne non Unités de renvoi de la durée. La valeur par défaut est min (minute). Les valeurs disponibles sont les suivantes : min (minute), msec (milliseconde), s (seconde), h (heure).
majorRoads Booléen non Spécifie s'il faut inclure toutes les routes dans le calcul ou seulement les routes principales. Si vous choisissez d'inclure uniquement les routes principales, la performance sera améliorée mais la précision en pâtira peut-être. La valeur par défaut est false.
returnOptimalRoutesOnly Booléen non Spécifie s'il faut ne renvoyer que l'itinéraire optimisé pour chaque combinaison point de départ/point d'arrivée. La valeur par défaut est true. L'itinéraire optimisé est soit l'itinéraire le plus rapide, soit la distance la plus courte, suivant le paramètre optimizeBy.
historicTrafficTimeBucket Chaîne non

Spécifie si le calcul de l'itinéraire utilise les vitesses de circulation historiques. Ces vitesses sont basées sur différents compartiments de temps de la journée. Pour que cette fonction soit disponible, il faut que les données comportent l'historique des vitesses de circulation. Les données de chaque pays/région possèdent les mêmes définitions de tranches horaires mais les valeurs de vitesses par tranches horaires peuvent varier. Les options sont :

None
Valeur par défaut. Les données d'historiques de circulation ne sont pas utilisées dans le calcul. À leur place, une valeur de vitesse moyenne est utilisée.
AMPeak
Calculez des itinéraires à l'aide des vitesses de pointe le matin. La tranche horaire Heures pleines matin se situe entre 07 h 00 et 10 h 00.
PMPeak
Calculez des itinéraires à l'aide des vitesses de pointe l'après-midi. La tranche horaire Heures pleines après-midi se situe entre 16 h 00 et 19 h 00.
OffPeak
Calculez des itinéraires à l'aide des vitesses aux heures creuses de la journée. La tranche horaire Heures creuses se situe entre 10 h 00 et 16 h 00.
Night
Calculez des itinéraires à l'aide des vitesses de nuit. La tranche horaire Nuit se situe 22 h 00 de 04 h 00.

Exemples

Matrice de coûts d'itinéraire avec deux points de départ et deux points d'arrivée.


http://www.pb.com/rest/Spatial/erm/databases/usroutedatabase.json?q=routeCostMatrix&startPoints=-73.56565,40.5545,-73.46565,40.4545,epsg:4326&endPoints=-73.34343,40.667,-73.14343,40.267,epsg:4326&returnOptimalRoutesOnly=true&optimizeBy=distance&distanceUnit=km&timeUnit=min&majorRoads=true&destinationSrs=epsg:4322&returnTime=false			
			

Réponse


{
    "matrix":
       [
           {
               "startPoint":
               {
                   "type": "Point",
                   "coordinates":
                   [
                       -73.56567672202618,
                       40.554384822358614
                   ],
                   "crs":
                   {
                       "type": "name",
                       "properties":
                       {
                           "name": "epsg:4322"
                       }
                   }
               },
               "endPoint":
               {
                   "type": "Point",
                   "coordinates":
                   [
                       -73.34345711862802,
                       40.66688488742393
                   ],
                   "crs":
                   {
                       "type": "name",
                       "properties":
                       {
                           "name": "epsg:4322"
                       }
                   }
               },
               "distance": 35.268,               
               "distanceUnit": "km
           },
           {
               "startPoint":
               {
                   "type": "Point",
                   "coordinates":
                   [
                       -73.46567684021008,
                       40.454384834155185
                   ],
                   "crs":
                   {
                       "type": "name",
                       "properties":
                       {
                           "name": "epsg:4322"
                       }
                   }
               },
               "endPoint":
               {
                   "type": "Point",
                   "coordinates":
                   [
                       -73.34345711862802,
                       40.66688488742393
                   ],
                   "crs":
                   {
                       "type": "name",
                       "properties":
                       {
                           "name": "epsg:4322"
                       }
                   }
               },
               "distance": 44.444,
               "distanceUnit": "km"
           }
       ]
    }