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.
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
Où 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 :
|
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"
}
]
}