Ejemplo 2 – Integración con la Trip API
En el siguiente ejemplo, tenemos una ruta entre las ciudades de Taubaté y Barra Mansa, donde además de la mejor ruta también queremos comprobar todos los puntos de control y escalas de la ruta.
Para ello, vamos a utilizar la API Trip, más los parámetros de la API POIs. En points
definimos los puntos de parada y sus coordenadas. En el ejemplo sólo hay dos puntos, el origen y el destino.
El parámetro place
es el objeto que contendrá todos los parámetros POIs API. Lo definiremos como sigue:
categories
– Definiremos la categoríaFISCALIZACAO
;subCategories
– Definiremos las subcategoríasBALANCAS
ePOSTO_FISCAL
;bufferRouteInMeters
– Radio de búsqueda de 10 metros en ruta;bufferStoppingPointsInMeters
– Radio de búsqueda de 20 metros en los puntos de parada.
Como los puntos de control y las escalas forman parte de la base nativa del servicio, no es necesario informar al parámetro onlyMyPlaces
.
La solicitud completa puede verse a continuación:
{ "points": [ { "latitude": -23.03058114872101, "longitude": -45.54850460771741, "siteId": "Taubaté" }, { "latitude": -22.535562949361026, "longitude": -44.19548915630202, "siteId": "Barra Mansa" } ], "place": { "categories": [ "FISCALIZACAO" ], "subCategories": [ "BALANCAS", "POSTO_FISCAL" ], "bufferRouteInMeters": 10, "bufferStoppingPointsInMeters": 20 } }
La respuesta devolverá toda la información sobre la ruta. El más importante de ellos en el ejemplo será la matriz de objetos llamada legs
. Cada objeto en tramos representa una sección de la ruta y contendrá los datos sólo de esa sección.
Dentro de cada objeto contenido en legs
se devolverá un objeto placeCalculation
que contendrá la siguiente información:
total
– Número entero que contiene el número de establecimientos encontrados en la búsqueda;places
– Array de objetos, donde cada objeto representa un establecimiento. Se devolverá la siguiente información:id
– Identificador único del establecimiento;name
– Nombre del establecimiento;category
– Categoría a la que pertenece el establecimiento;subcategory
– Subcategoría a la que pertenece el establecimiento;address
– Objeto con datos de dirección:street
– String para introducir la dirección;number
– String para el número de establecimiento;district
– (Opcional) String para el barrio;city
– String para la ciudad;state
– String para el estado;zipcode
– String para el código postal;point
– Array con las coordenadas del establecimiento:latitude
– Coordenada de latitud en grados decimales;longitude
– Coordenada de longitud en grados decimales;
active
– Valor booleano que indica si el establecimiento está activo o no;tags
– Etiquetas del establecimiento, en su caso;phones
– Números de teléfono de contacto del establecimiento, si están disponibles.
A continuación encontrará la respuesta completa:
{ "id": "645b9c26bc072f0a972f3224", "clientId": "maplink", "totalDistance": 169159, "totalNominalDuration": 7988, "averageSpeed": 64.18, "legs": [ { "distance": 169159, "nominalDuration": 7988, "averageSpeed": 64.18, "points": "ddqkCbe_uGo@YaGgJwUa_@iBiCeCgEsCeEWm@mAk@\\S?OI??m@kA??GGGAGBkF~E??", "placeCalculation": { "total": 2, "places": [ { "id": "61b0c5960b666c4e05a1492f", "name": "Posto Fiscal Estado do Rio de Janeiro", "category": "FISCALIZACAO", "subCategory": "POSTO_FISCAL", "address": { "street": "Rodovia Presidente Dutra", "number": "KM 323+667", "city": "Itatiaia", "state": "RJ", "point": { "latitude": -22.50462288, "longitude": -44.6116333 } }, "active": true }, { "id": "61b0c57caeddba55769f812e", "name": "Praça de Balança Queluz", "category": "FISCALIZACAO", "subCategory": "BALANCAS", "address": { "street": "Rodovia Presidente Dutra", "number": "KM 000+827", "city": "Queluz", "state": "SP", "point": { "latitude": -22.5179217, "longitude": -44.7067999 } }, "active": true } ] } } ] }