Descripción
El servicio GetRoute permite obtener información de enrutamiento para un conjunto de dos puntos distintos o para múltiples puntos. Toma una ubicación de inicio y una de llegada con puntos intermedios opcionales como entrada y devuelve la ruta que es más rápida o más corta.
Formato de dirección URL de HTTP GET
El siguiente formato se utiliza para solicitudes HTTP GET. HTTP GET se utiliza para rutas simples, donde no se requiere carga JSON adicional. También se pueden agregar puntos intermedios a la solicitud HTTP GET.
HTTP GET /rest/Spatial/erm/databases/dbsource.json?q=route&query_parameters
Donde dbsource es el nombre de la base de datos que contiene los datos que se van a usar para la ruta. Utilice el nombre de la base de datos especificado en la herramienta Recursos de base de datos del módulo Spectrum Spatial Routing.
Formato de dirección URL de HTTP POST
El siguiente formato se utiliza para solicitudes HTTP POST:
HTTP POST: /rest/Spatial/erm/databases/dbsource.json?q=route&query_parameters POST BODY: Content-Type:application/json {Route Data}
Route Data es el cuerpo POST json (Tipo de contenido: aplicación/json) para la información de ruta adicional que se va a utilizar en el cálculo que contiene puntos intermedios, actualizaciones transitorias o prioridad de tipos de camino. Para obtener información y ejemplos de estas opciones, consulte Opciones de GetRoute HTTP POST.
Parámetros de consulta
Esta operación toma los siguientes parámetros de consulta.
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
startPoint | Cadena de caracteres | Sí | La ubicación de inicio de la ruta en formato: x,y,coordSys. Por ejemplo: -74.2,40.8,epsg:4326 |
endPoint | Cadena de caracteres | Sí | La ubicación de llegada de la ruta en formato: x,y,coordSys. Por ejemplo: -74.2,40.8,epsg:4326 |
intermediatePoints | Cadena de caracteres | No | Una lista de puntos intermedios para incluir junto con la ruta. Para incluir en la solicitud HTTP GET, use el formato: Long,Lat,Long,Lat,…,coordsys. Por ejemplo: -74.2,40.8,-73,42,epsg:4326. Para incluir un conjunto de puntos intermedios en una solicitud HTTP POST, agregue una carga MultiPoint JSON que indique los puntos que debe incluir la ruta. Si los puntos intermedios se especifican en la URL y en la carga json, esta última tiene preferencia y se ignoran los que están en de la URL. |
oip | Boolean | No | Un parámetro de procesamiento que indica si los puntos intermedios se deben optimizar. El valor predeterminado es "false". De manera predeterminada, los puntos intermedios de usarán en el cálculo en el orden especificado. Si se configura como verdadero, los puntos especificados se reordenarán en una manera óptima durante el cálculo de la ruta. |
returnIntermediatePoints | Boolean | No |
Se determina si se devuelven los puntos intermedios con la respuesta de la ruta. El valor predeterminado es "false". Si un valor no corresponde a verdadero ni a falso, se elegirá falso de manera predeterminada. Con esta opción se devolverán los puntos intermedios en orden, como se especifica en el cuerpo POST. Si se establece el valor de opción oip en verdadero, entonces, con esta opción, se devolverán los puntos intermedios en un orden optimizado. |
destinationSrs | Cadena de caracteres | No | El sistema de coordenadas devuelve la ruta y las geometrías resultantes. El valor predeterminado es el sistema de coordenadas de los datos que se utilizan. |
optimizeBy | Cadena de caracteres | No | El tipo de optimización para usar en la ruta. Los valores válidos son tiempo o distancia. El valor predeterminado es tiempo. |
returnDistance | Boolean | No | Las direcciones de la ruta incluyen la distancia recorrida. El valor predeterminado es verdadero. |
distanceUnit | Cadena de caracteres | No | Las unidades para devolver la distancia. El valor predeterminado es m (metros). Los valores disponibles son : m(meter), km(kilometer), yd(yard), ft(foot), mi(mile). |
returnTime | Boolean | No | Las direcciones de la ruta incluyen el tiempo que tarda seguir una indicación. El valor predeterminado es verdadero. |
timeUnit | Cadena de caracteres | No | Las unidades para devolver el tiempo. El valor predeterminado es min (minutos). Los valores disponibles son: min(minuto), msec (milisegundo), s(segundo), h(hora). |
language | Cadena de caracteres | No |
El idioma de las indicaciones de recorrido se debe devolver, solo si las indicaciones del camino se devuelven (si directionsStyle se define como normal o breve). El valor predeterminado es inglés (en). Las indicaciones se pueden devolver en los siguientes idiomas:
|
returnDirectionGeometry | Boolean | No | Incluye la geometría relacionada con cada instrucción de ruta en la respuesta de ruta. El valor predeterminado es "false". |
directionsStyle | Cadena de caracteres | No |
El tipo de indicaciones de ruta que se van a devolver. El valor predeterminado es NINGUNO. Especifique este parámetro si requiere que se devuelvan las indicaciones de ruta. Las opciones al especificar las indicaciones de ruta son:
|
segmentGeometryStyle | Cadena de caracteres | No |
El formato de la geometría que representa un segmento de la ruta. El valor predeterminado es NINGUNO. Especifique este parámetro si solicitó la devolución de geometrías de un segmento. Las opciones al especificar las indicaciones de ruta son:
|
primaryNameOnly | Boolean | No | Si se deben devolver todos los nombres de una calle dada o solo el nombre principal de la calle. Solo se usa cuando se devuelven las indicaciones de ruta. El valor predeterminado es falso. |
majorRoads | Boolean | No | Especifica si en el cálculo deben incluirse todos los caminos o solo los caminos principales. Si se opta por incluir solo los caminos principales, el rendimiento mejorará pero se reducirá la precisión. El valor predeterminado es "false". |
historicTrafficTimeBucket | Cadena de caracteres | No |
Especifica si el cálculo de ruta utiliza las velocidades de tráfico histórico. Estas velocidades se basan en los diferentes depósitos de momento del día. Los datos deben incluir las velocidades de tráfico histórico para utilizar esta característica. Los datos para cada país/región tienen las mismas definiciones de depósito, donde las velocidades para estos valores de depósito pueden variar. Las opciones son:
|
avoid | Cadena de caracteres | No | Especifica una lista separada por comas de tipos de camino que se deben evitar durante el cálculo de rutas. Este es un parámetro de cadena de caracteres. Cuando se proporciona un tipo de camino como el valor del parámetro, la ruta excluye ese tipo de caminos durante el cálculo de rutas. Por ejemplo, si se proporciona tollRoad como el valor de parámetro, la ruta calculada contiene una ruta sin carreteras de peaje. |
version | Cadena de caracteres | No | Especifica la versión del servicio REST GetRoute. Los valores válidos son 1 y 2. El valor predeterminado para version es 1. |
localRoadsLoadFactor |
Cadena de caracteres | No |
Especifica el número de caminos locales que se pueden cargar en la memoria durante el cálculo de la ruta o la matriz. El número de caminos que puede cargar es directamente proporcional al valor seleccionado en el parámetro donde 1 es el mínimo y 3 es el valor máximo. Los valores válidos pueden ser 1, 2 o 3. El valor por defecto es 1. Consulte Factor de carga de caminos locales para obtener una descripción detallada, así como el impacto del parámetro en el cálculo de ruta o de matriz. Nota: El parámetro no acepta valores decimales.
|
Ejemplos
Ruta simple con puntos de inicio y llegada.
http://<server>:<port>/rest/Spatial/erm/databases/usroutedatabase.json? q=route&startPoint=-73.97,40.79,epsg:4326&endPoint=-73.98,40.74,epsg:4326
Respuesta
{ "distance": 7779, "distanceUnit": "m", "time": 16.75, "timeUnit": "min" }
Ruta con puntos intermedios.
http://<server>:<port>/rest/Spatial/erm/databases/usroutedatabase.json? q=route&startPoint=-73.970257,40.794045,epsg:4326&endPoint=- 73.972103,40.786605, epsg:4326&intermediatePoints=-73.976266,40.788717,-73.973562,40.792193,-73.971802,40.794630, epsg:4326&oip=true&returnIntermediatePoints=true"/>
Respuesta
{ "distance": 1921, "distanceUnit": "m", "intermediatePoints": { "type": "MultiPoint", "coordinates": [ [-73.971802, 40.79463], [-73.973562, 40.792193], [-73.976266, 40.788717] ] }, "time": 4.2, "timeUnit": "min" }
Ruta con indicaciones activadas.
http://<server>:<port>/rest/Spatial/erm/databases/usroutedatabase.json? q=route&startPoint=-73.97,40.79,epsg:4326&endPoint=-73.98,40.74, epsg:4326&language=en&directionsStyle=Normal&returnDirectionGeometry=true
Respuesta
{ "time": 10.58, "timeUnit": "min", "distance": 9035, "distanceUnit": "m", "language": "en", "directionsStyle": "Normal", "routeDirections": [ { "time": 0.03, "timeUnit": "min", "distance": 25, "distanceUnit": "m", "instruction": "", "directionGeometry": { "type": "LineString", "coordinates": [ [ -76.421169, 42.69302 ], [ -76.421353, 42.692645 ], ... ] } }, { "time": 0.7, "timeUnit": "min", "distance": 394, "distanceUnit": "m", "instruction": "Turn right on W 91st St and travel West 394.0 m (0.7 min).", "directionGeometry": { "type": "LineString", "coordinates": [ [ -76.429896, 42.67153 ], ... ] } } ] }
Respuesta de error específica de la versión
Cuando ingresa un valor de parámetro no válido (por ejemplo, puntos que quedan fuera de los límites) en una solicitud, la respuesta de error que obtiene depende de la versión que ingresó. Cuando la versión es 1, obtiene valor y error, y cuando la versión es 2, la respuesta sólo contiene el error.
- Solicitud cuando version es 1:
http://<server>:<port>/rest/Spatial/erm/databases/usroutedatabase.json? &q=route&startPoint=-14.321600,60.662859,epsg:4326&endPoint=-74.035208,40.695624, epsg:4326&distanceUnit=km&version=1
- Respuesta:
{ "value": "Point outside boundaries: (-14.3216,60.662859,0)", "errors": [ { "errorCode": 5008, "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)" } ] }
- Solicitud cuando version es 2:
http://<server>:<port>/rest/Spatial/erm/databases/usroutedatabase.json? &q=route&startPoint=-14.321600,60.662859,epsg:4326&endPoint=-74.035208,40.695624, epsg:4326&distanceUnit=km&version=2
- Respuesta:
{ "errors": [ { "errorCode": 5008, "userMessage": "Point outside boundaries: (-14.3216,60.662859,0)" } ] }