Formato de dirección URL de HTTP POST
Además de los parámetros regulares HTTP GET, puede agregar opciones de carga HTTP POST a su solicitud que especifica actualizaciones transitorias y prioridad de tipos de camino. La carga HTTP POST también se puede usar si la lista de puntos de entrada excede los límites del área de influencia del autor de la llamada. El tipo de contenido se debe configurar en aplicación/json. El siguiente formato se utiliza para solicitudes HTTP POST:
HTTP POST: /rest/Spatial/erm/databases/dbsource.json?q=routeCostMatrix&query_parameters POST BODY: Content-Type:application/json {Route Data}
Definición de puntos de inicio y llegada
Para incluir un conjunto de puntos de inicio y llegada en una solicitud HTTP POST, agregue una carga MultiPoint JSON que indique los puntos que debe incluir la ruta. Cuando se definen los puntos de inicio y llegada en la carga HTTP POST, los parámetros startPoints y endPoints no son parámetros de consulta obligatorios en la URL. Si están definidos en la URL, se ignoran. Cuando se ignoran los puntos en la URL, se registra un mensaje de advertencia en el archivo spectrum-server.log.
Ejemplos de carga de puntos de inicio HTTP POST.
{ "startPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]} }
Ejemplos de carga de puntos de llegada HTTP POST.
{ "endPoints": {"type": "MultiPoint","crs": {"type": "name","properties": {"name": "epsg:4326"}},"coordinates": [[ -73.976266,40.788717],[ -73.973562,40.792193],[ -73.971802,40.794630]]} }
Actualizaciones transitorias
Este conjunto de preferencias le permite definir actualizaciones transitorias para cada solicitud. Por ejemplo, usted puede solicitar que el servidor intente evitar todos los tipos de caminos principales. Cada solicitud puede contener una o más actualizaciones. Para actualizaciones de velocidad, el valor de velocidad positivo es un aumento de velocidad y el valor de velocidad negativo es una disminución de velocidad. A continuación se ofrece una descripción de los tipos de actualización transitoria:
Tipo de actualización |
Descripción |
---|---|
punto |
Las actualizaciones de punto son cambios que se aplican a un punto correspondiente (latitud, longitud). Para un punto en particular, puede: excluir el punto, definir la velocidad del punto o cambiar (aumentar o disminuir) la velocidad del punto en un valor o porcentaje. Use uno de los siguientes tipos de actualizaciones:
|
segmentID |
Las actualizaciones de segmentos son los cambios que se aplican a una ID de segmento correspondiente. Para un segmento en particular, puede: excluir el segmento, definir la velocidad del segmento, cambiar (aumentar o disminuir) la velocidad del segmento en un valor o porcentaje o cambiar el tipo de camino del segmento. Use uno de los siguientes tipos de actualizaciones:
|
roadType |
Las actualizaciones de tipo de camino son cambios que se aplican al tipo de camino correspondiente. Para un tipo de camino en particular, puede: definir la velocidad del tipo de camino o cambiar (aumentar o disminuir) la velocidad del tipo de camino en un valor o porcentaje. Use uno de los siguientes tipos de actualizaciones:
|
Ejemplos de carga de actualizaciones transitorias HTTP POST.
{ "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"}} ] } ] }
Restricciones para vehículos comerciales
Las restricciones de vehículos comerciales se componen de directrices para el motor de enrutamiento que guía los atributos y el comportamiento de los vehículos comerciales que realizan recorridos a lo largo de la ruta. Según los atributos del vehículo provisto (como la altura, el ancho, la longitud y el peso) y los atributos de restricciones del vehículo comercial que se encuentran en la red de carreteras, se toma la decisión de permitir enviar o no un vehículo particular sobre un segmento. Si no existe un atributo de restricción del vehículo comercial en la red de carreteras, los parámetros de restricción de entrada no tendrán efecto en la ruta resultante.
A continuación se indican los conjuntos de parámetros para las restricciones de vehículos comerciales:
Opción | Descripción |
---|---|
looseningBarrierRestrictions |
Especifica que al determinar la ruta se eliminarán las barreras. Estas restricciones se dan con más frecuencia cuando se le prohíbe a un vehículo comercial atravesar un segmento debido a una ordenanza local o se le permite acceder al segmento solo cuando es necesario (por ejemplo, acceso de última milla, entrega local, etc.). Las rutas en las que se ha eliminado una barrera todavía tienen un mayor costo de ruta aún cuando sea más corta o rápida que una ruta sin obstáculos. |
vehicleAttributes |
Especifica los detalles del tipo de vehículo que tendrá restricciones en función del tipo, altura, peso, longitud, ancho al determinar la ruta. Los vehículos comerciales se dividen en diferentes tipos, que van desde los remolques cortos a los de tres vagones. La atribución de Vehículo comercial está organizada por tipo de vehículo. Esto significa que es muy posible que en un sector haya preferencia para un tipo de vehículos y el mismo sector tenga una restricción para otro tipo de vehículos. Use los siguientes tipos de información de vehículos:
|
Ejemplos
Sin restricciones de vehículosSolicitud:
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
Respuesta:{ "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" }] }
Con restricciones de vehículos
Solicitud:
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
Carga de restricción de vehículos comerciales HTTP POST. { "cvr":{ "looseningBarrierRestrictions":"n","vehicleAttributes":{ "vehicleType":"ALL","heightUnit":"meter","height":"4","weightUnit":"Kilogram","weight":"40000" } } }
Respuesta:{ "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" }] }
los valores de la distancia y el tiempo cambiaron con CVR. Prioridad de tipo de camino
Especifica la prioridad que debe asignarse a los diferentes tipos de caminos al determinar la ruta. A continuación se ofrece una descripción de las opciones de prioridad de tipo de camino:
Opción |
Descripción |
---|---|
alta |
Se prefiere ese tipo de camino por sobre los demás. |
media |
Este tipo de camino tiene el mismo nivel de preferencia que los demás tipos de caminos. Si no se especifica una preferencia para un tipo de camino, esta será la opción predeterminada. |
baja |
Se prefieren otros tipos de caminos y no este tipo. |
evitar |
El tipo de camino se excluye de las rutas de ser posible. No siempre es posible excluir un tipo de camino de las indicaciones de viaje. Según la situación, si la alternativa para un tipo de camino evitado es demasiado deficiente, en ese caso el software elegirá una ruta que incluya el tipo de camino que se deseaba evitar. Asimismo, si el punto de partida o llegada se ubica en un segmento cuyo tipo de camino se había evitado, el software de todas formas utilizará ese segmento. |
Ejemplo de carga de prioridad de tipo de camino HTTP POST
{ "roadTypesPriority": { "RoadType.MajorRoadDenseUrban": "High", "RoadType.LimitedAccessDenseUrban":"Low", "RoadType.LimitedAccessRural":"Medium", "RoadType.PrimaryHighwayUrban":"Avoid" } }