Options GetRouteCostMatrix POST HTTP
Format d'URL POST HTTP
Outre les paramètres GET HTTP habituels, vous pouvez ajouter des options de charge utile POST HTTP à votre requête qui spécifie les mises à jour transitoires et la priorité des types de route. La charge utile POST HTTP peut également être utilisée si la liste des points d'entrée dépasse les limites du tampon URL de l'appelant. Le type de contenu doit être défini sur application/json. 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}
Définition des points de départ et d'arrivée
Pour inclure un ensemble de points de départ ou d'arrivée dans une requête POST HTTP, ajoutez la charge utile MultiPoint JSON indiquant les points à inclure dans l'itinéraire. Lorsque les points de départ et d'arrivée sont définis dans la charge utile POST HTTP, les paramètres startPoints et endPoints ne sont pas des paramètres de requête obligatoires dans l'URL. S'ils sont définis dans l'URL, ils sont ignorés. Lorsque des points de l'URL sont ignorés, un message d'avertissement est consigné dans le fichier wrapper.log.
Exemple de charge utile POST HTTP avec des points de départ.
{
"startPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]}
}
Exemple de charge utile POST HTTP avec des points d'arrivée.
{
"endPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]}
}
Mises à jour transitoires
Cet ensemble de préférences vous permettent de définir des mises à jour transitoires pour chaque requête. Par exemple, vous pouvez requérir que le serveur essaie d'éviter toutes les routes principales. Chaque requête peut contenir une ou plusieurs mises à jour. Pour les mises à jour de la vitesse, une valeur de vitesse positive augmente la vitesse et une valeur de vitesse négative réduit la vitesse. Voici une description des types de mise à jour transitoire :
Type de mise à jour |
Description |
---|---|
point |
Les mises à jour de point constituent des modifications apportées à un point correspondant (Latitude, Longitude). Pour un point donné, vous pouvez réaliser les opérations suivantes : exclure le point, définir la vitesse du point ou modifier (augmenter ou réduire) la vitesse du point d'une valeur ou d'un pourcentage. Utilisez l'un des types de mise à jour suivants :
|
segmentID |
Les mises à jour de segment constituent des modifications apportées à un ID de segment correspondant. Pour un segment donné, vous pouvez réaliser les opérations suivantes : exclure le segment, définir la vitesse du segment, modifier (augmenter ou réduire) la vitesse du segment d'une valeur ou d'un pourcentage ou modifier le type de route du segment. Utilisez l'un des types de mise à jour suivants :
|
roadType |
Les mises à jour de type de route constituent des modifications apportées à un type de route correspondant. Pour un type de route donné, vous pouvez réaliser les opérations suivantes : définir la vitesse du type de route ou modifier (augmenter ou réduire) la vitesse du type de route d'une valeur ou d'un pourcentage. Utilisez l'un des types de mise à jour suivants :
|
Exemple de charge utile POST HTTP avec mise à jour transitoire.
{
"transientUpdates": [
{
"segmentID": "specify a segment id",
"updates": [
{"exclude": "Y"},
{"roadType": "a road type"},
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
},
{
"point": "specify a geojson point",
"updates": [
{"exclude": "Y"},
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
},
{
"roadType": "specify a road type",
"updates": [
{"percentage": 26.0},
{"speed": { "velocity": 25, "velocityUnit": "kph"}},
{"percentage": -13.5},
{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
]
}
]
}
Exemple de point geojson.
"point": {"type": "Point", "crs":
{
"type": "name",
"properties":
{"name": "epsg:4326"}
},
"coordinates":
[-73.979102,40.785193]
}
Priorité des types de route
Indique la priorité à attribuer aux différents types de routes lors de l'établissement de l'itinéraire. Voici une description des options de priorité des types de route :
Option |
Description |
---|---|
Haut |
Préférer ce type de route aux autres types de routes. |
Moyen |
Donner à ce type de route une préférence égale aux autres types de routes. Si aucune préférence n'est spécifiée pour un type de route, la valeur par défaut est Moyen. |
Bas |
Préférer d'autres types de routes à ce type de route. |
Éviter |
Exclure le type de route des itinéraires si possible. Il n'est pas toujours possible d'exclure un type de route des directions de trajet. Selon la situation, l'alternative à un type de route évité peut être si insignifiante que le logiciel choisira un itinéraire qui utilise un type de route évité. Par ailleurs, si le point de départ ou d'arrivée se situe sur un segment dont le type de route a été évité, le logiciel utilisera tout de même ce segment. |
Exemple de charge utile POST HTTP avec priorité de type de route.
{
" roadTypesPriority ": {
"RoadType.MajorRoadDenseUrban": "High",
"RoadType.LimitedAccessDenseUrban":"Low",
"RoadType.LimitedAccessRural":"Medium",
"RoadType.PrimaryHighwayUrban":"Avoid"
}
}