POIs

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ía FISCALIZACAO ;
  • subCategories – Definiremos las subcategorías BALANCAS e POSTO_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
                    }
                ]
            }
        }
    ]
}