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 :

percentage
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une augmentation de la vitesse du point en indiquant un pourcentage d'augmentation (valeur positive) ou de réduction (valeur négative) de la vitesse.
speed
Il s'agit d'une mise à jour de la vitesse, dans laquelle vous définissez la nouvelle vitesse du point en précisant l'unité de vitesse et la nouvelle vitesse. Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).
speedAdjustment
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une modification de la vitesse du point en indiquant la modification de vitesse (unité et valeur). Les valeurs de vitesse peuvent être augmentées (valeurs positives) ou diminuées (valeurs négatives). Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).
exclude
Il s'agit d'une valeur de type chaîne qui exclut le point indiqué du calcul de l'itinéraire. Pour exclure un point, vous devez indiquer le point et inclure le paramètre Exclure défini sur Y. Les valeurs valides sont Y (oui) et N (non).

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 :

percentage
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une augmentation de la vitesse de segmentID en indiquant un pourcentage d'augmentation (valeur positive) ou de réduction (valeur négative) de la vitesse.
speed
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez la nouvelle vitesse de segmentID en indiquant l'unité de vitesse et la nouvelle vitesse. Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).
speedAdjustment
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une modification de la vitesse de segmentID en indiquant la modification de vitesse (unité et valeur). Les valeurs de vitesse peuvent être augmentées (valeurs positives) ou diminuées (valeurs négatives). Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).
exclude
Il s'agit d'une valeur de type chaîne qui exclut l'ID du segment indiqué du calcul de l'itinéraire. Pour exclure un segmentID, vous devez indiquer le segmentID et inclure le paramètre Exclure défini sur Y. Les valeurs valides sont Y (oui) et N (non).
roadType

Il s'agit d'une valeur de type chaîne qui modifie la valeur du type de route du segment pour le calcul de l'itinéraire.

Le roadType peut prendre l'une des valeurs suivantes :

  • Voie d'accès
  • Petite route
  • Connecteur
  • Ferry
  • Voie piétonnière
  • Accès limité urbain dense
  • Accès limité rural
  • Accès limité de banlieue
  • Accès limité urbain
  • Route locale urbain dense
  • Route locale rural
  • Route locale de banlieue
  • Route locale urbain
  • Route locale principale urbain dense
  • Route locale principale rural
  • Route locale principale de banlieue
  • Route locale principale urbain
  • Route principale urbain dense
  • Route principale rural
  • Route principale de banlieue
  • Route principale urbain
  • Route locale secondaire urbain dense
  • Route locale secondaire rural
  • Route locale secondaire de banlieue
  • Route locale secondaire urbain
  • Route normale urbain dense
  • Route normale rural
  • Route normale rural
  • Route normale urbain
  • Autoroute principale urbain dense
  • Autoroute principal rural
  • Autoroute principal de banlieue
  • Autoroute principal urbain
  • Bretelle d'accès urbain dense
  • Accès limité par bretelle d'accès
  • Bretelle d'accès de route principale
  • Bretelle d'accès d'autoroute principale
  • Bretelle d'accès rural
  • Bretelle d'accès d'autoroute secondaire
  • Bretelle d'accès urbain
  • Bretelle d'accès de banlieue
  • Autoroute secondaire urbain dense
  • Autoroute secondaire rural
  • Autoroute secondaire de banlieue
  • Autoroute secondaire urbain

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 :

percentage
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une augmentation de la vitesse du type de route en indiquant un pourcentage d'augmentation (valeur positive) ou de réduction (valeur négative) de la vitesse.
speed
Il s'agit d'une mise à jour de la vitesse, dans laquelle vous définissez la nouvelle vitesse du type de route en indiquant l'unité de vitesse et la nouvelle vitesse. Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).
speedAdjustment
Il s'agit d'une mise à jour de la vitesse dans laquelle vous définissez une modification de la vitesse du type de route en indiquant la modification de vitesse (unité et valeur). Les valeurs de vitesse peuvent être augmentées (valeurs positives) ou diminuées (valeurs négatives). Pour les mises à jour de la vitesse, l'unité de vitesse peut prendre l'une des valeurs suivantes : kph (kilomètres par heure), mph (miles par heure), mtps (mètres par seconde), mtpm (mètres par minute).

Exemple de charge utile POST HTTP avec mise à jour transitoire.


				
					{
					"transientUpdates": [
					{
					"segmentID": "7e3396fc:151186f",
					"updates": [
					{"percentage": 26.0}
					]
					},
					{
					"point": {"type": "Point",
					"crs":
					{
					"type": "name",
					"properties":
					{
					"name": "epsg:4326"
					}
					},
					"coordinates":
					[
					-73.972776,
					40.795076        
					]
					},
					"updates": [
					{"speedAdjustment" : { "velocity": 5, "velocityUnit": "kph"}}
					]
					},    
					{
					"roadType": "major road dense urban",
					"updates": [
					{"speed": { "velocity": 25, "velocityUnit": "kph"}}
					]
					}
					]
					}
				
			

Restrictions de véhicule commercial

Les restrictions de véhicules commerciaux sont composées de directives relatives au moteur de routage qui guide le comportement et les attributs des véhicules commerciaux qui suivent l'itinéraire. Selon les attributs de véhicule fournis (tels que la hauteur, la largeur, la longueur, le poids) et les attributs de restriction de véhicules commerciaux présents sur le réseau routier, il est décidé si l'on peut autoriser un véhicule donné à circuler sur un segment ou non. S’il n’existe aucun attribut de restriction de véhicules commerciaux présent sur le réseau routier, les paramètres de restriction d’entrée n'auront aucun effet sur l’itinéraire qui en résulte.

Voici l’ensemble des paramètres pour les restrictions de véhicules commerciaux :

Option Description

looseningBarrierRestrictions

Lors de la détermination de l'itinéraire, indique que les barrières seront supprimées. Ces restrictions sont le plus souvent utilisées lorsque la réglementation locale interdit à un véhicule commercial de traverser un segment ou lorsqu'un véhicule commercial est autorisé sur le segment, mais seulement s'il ne peut pas faire autrement (par exemple, accès au dernier kilomètre, livraison locale, etc.). Les itinéraires dont une barrière a été supprimée continuent à représenter un coût d'itinéraire supérieur, même s'ils sont plus courts/plus rapides qu'un itinéraire sans barrière.

vehicleAttributes

Lors de la détermination de l'itinéraire, indique les détails du véhicule faisant l'objet de la restriction en fonction de son type, sa hauteur, son poids, sa longueur ou sa largeur. Les véhicules commerciaux sont divisés en différents types, des véhicules à remorque courte aux longs véhicules à trois remorques. L'attribution des restrictions de véhicule commercial est organisée par type de véhicule. Cela signifie qu'il est parfaitement possible qu'un segment soit préféré pour un type de véhicule et qu'il fasse l'objet d'une restriction pour un autre type. Utilisez les types d'informations sur le véhicule suivants :

vehicleType
Sélectionnez soit ALL, soit l'un des types de véhicule suivants : STRAIGHT, SEMI_TRAILOR, STANDARD_DOUBLE, INTERMEDIATE_DOUBLE, LONG_DOUBLE, TRIPLE, OTHER_LONG_COMBINATION_VEHICLE.
weight
Indique le poids maximal d'un véhicule. Lors de la détermination de l'itinéraire, tout véhicule dépassant cette valeur fait l'objet d'une restriction. Les unités de poids sont les suivantes : kg, lb, mt, t.
height
Indique la hauteur maximale d'un véhicule. Lors de la détermination de l'itinéraire, tout véhicule dépassant cette valeur fait l'objet d'une restriction. Les unités de hauteur sont les suivantes : ft, yd, mi, m, km.
length
Indique la longueur maximale d'un véhicule. Lors de la détermination de l'itinéraire, tout véhicule dépassant cette valeur fait l'objet d'une restriction. Les unités de longueur sont les suivantes : ft, yd, mi, m, km.
width

Indique la largeur maximale d'un véhicule. Lors de la détermination de l'itinéraire, tout véhicule dépassant cette valeur fait l'objet d'une restriction. Les unités de largeur sont les suivantes : ft, yd, mi, m, km.

Remarque : Vous devez indiquer le poids/la hauteur ou la longueur/la largeur ainsi que son unité correspondante.

Exemples

Sans restrictions de véhicules commerciaux

Requête :


HTTP GET /rest/Spatial/erm/databases/US_CVR.json?q=routeCostMatrix&startPoints=-74.7221203,42.9737073,epsg:4326&endPoints=-74.6671887,42.8097083,epsg:4326
	

Réponse :


{
  "matrix": [{
    "distance": 40025,
    "distanceUnit": "m",
    "endPoint": {
      "type": "Point",
      "coordinates": [-74.6671887, 42.8097083]
    },
    "startPoint": {
      "type": "Point",
      "coordinates": [-74.7221203, 42.9737073]
    },
    "time": 36.57,
    "timeUnit": "min"
  }]
}	

Avec restrictions de véhicules commerciaux

Requête :


HTTP GET /rest/Spatial/erm/databases/US_CVR.json?q=routeCostMatrix&startPoints=-74.7221203,42.9737073,epsg:4326&endPoints=-74.6671887,42.8097083,epsg:4326	
Charge utile POST HTTP avec restrictions de véhicules commerciaux.


{
     "cvr":{
     "looseningBarrierRestrictions":"n","vehicleAttributes":{
     "vehicleType":"ALL","heightUnit":"meter","height":"4","weightUnit":"Kilogram","weight":"40000"
                                                            }
           }
} 	
Réponse :
		
		{
  "matrix": [{
    "distance": 44933,
    "distanceUnit": "m",
    "endPoint": {
      "type": "Point",
      "coordinates": [-74.6671887, 42.8097083]
    },
    "startPoint": {
      "type": "Point",
      "coordinates": [-74.7221203, 42.9737073]
    },
    "time": 37.48,
    "timeUnit": "min"
  }]
}

la valeur de distance et de temps a changé avec CVR.

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"
      }
}