Como consultar pontos de interesse em uma rota?

Saiba como consultar pontos de interesse durante a rota usando a Trip API.

Para obter o retorno de pontos de interesse durante a rota, será necessário adicionar os seguintes parâmetros na requisição:

  • place - Usado para retornar pontos de interesse (POIs) presentes na rota. Necessário informar os seguintes parâmetros:

    • categories - Categoria do estabelecimento desejado.

    • subCategories - (Opcional) Subcategoria do estabelecimento desejado.

    • bufferRouteInMeters - Número inteiro com o raio de busca de POIs ao longo da rota. Limite de 500 metros.

    • bufferStoppingPointsInMeters - Número inteiro com o raio de busca de POIs nos pontos de paradas. Limite de 500 metros.

Para consultar as categorias e subcategorias disponíveis para consulta e cadastro, basta os seguintes endpoins (método GET):

Nesse exemplo, temos uma rota entre Campo Grande - MS e Rio de Janeiro - RJ, onde queremos identificar todos os postos de fiscalização presentes na rota. Para isso vamos acrescentar o parâmetro place.

Em categories informamos a categoria "FISCALIZACAO" e em bufferRouteInMeters e bufferStoppingPointsInMeters especificamos que queremos um raio de busca de 10 metros durante a rota e 20 metros nos pontos de parada respectivamente.

{
  "calculationMode": "THE_FASTEST",  
  "points": [
    {
      "latitude": -20.46326264290572,
      "longitude": -54.612264694166356,
      "siteId": "Point 1-Campo Grande-MS"
    },
    {
      "latitude": -22.907660731374474,
      "longitude": -43.18378983504734,
      "siteId": "Point 2-Rio de Janeiro-RJ"
    }
  ],
  "place": {
    "categories": [
      "FISCALIZACAO"
    ],
    "bufferRouteInMeters": 10,
    "bufferStoppingPointsInMeters": 20
  }
}

O resultado pode ser observado no mapa abaixo, onde cada ícone representa um ponto de interesse encontrado durante a rota:

fddb29a8-55c2-4ea2-bf23-fc2e4d020b09

Na resposta, será retornado um array de objetos chamado legs. Cada objeto em legs representa um trecho da rota e irá conter os dados referentes apenas a esse trecho. Sendo a primeira leg correspondente à rota do primeiro ao segundo ponto. A segunda leg corresponde à rota entre o segundo e o terceiro ponto e assim por diante.

Em cada objeto em legs será retornado o objeto placeCalculation com as seguintes informações:

  • total - Número inteiro com o total de pontos de interesse encontrados no trecho;

  • places - Array de objetos, onde cada objeto representa um ponto de interesse encontrada. As seguintes informações são retornadas em cada objeto:

    • id - ID interno do ponto de interesse;

    • category - Categoria a qual o ponto de interesse pertence;

    • subCategory - Subcategoria a qual o ponto de interesse pertence;

    • address - Objeto contendo informações do endereço do ponto de interesse:

      • street - Rua do ponto de interesse;

      • number - Número do ponto de interesse;

      • city - Cidade do ponto de interesse;

      • state - Estado do ponto de interesse;

      • point - Objeto com as coordenadas (latitude e longitude) do ponto de interesse.

Abaixa a resposta. As coordenadas encontram-se truncadas, apenas para facilitar a leitura:

{
    "id": "62a10bb83c37ae50da44e5db",
    "clientId": "maplink",
    "totalDistance": 1419705,
    "totalNominalDuration": 62024,
    "averageSpeed": 82.4,
    "legs": [
        {
            "distance": 1419705,
            "nominalDuration": 62024,
            "averageSpeed": 82.4,
            "points": [
                {
                    "latitude": -20.46317952376137,
                    "longitude": -54.612278411463116
                }
........(truncado).........
                {
                    "latitude": -22.907659462421773,
                    "longitude": -43.1837901886899
                }
            ],
            "placeCalculation": {
                "total": 6,
                "places": [
                    {
                        "id": "61b0c57caeddba55769f812b",
                        "category": "FISCALIZACAO",
                        "subCategory": "BALANCAS",
                        "address": {
                            "street": "Rodovia Comandante João Ribeiro de Barros",
                            "number": "KM 224+800",
                            "city": "Pederneiras",
                            "state": "SP",
                            "point": {
                                "latitude": -22.32242165,
                                "longitude": -48.96494395
                            }
                        },
                        "active": true
                    },
                    {
                        "id": "61b0c59c0b666c4e05a14943",
                        "category": "FISCALIZACAO",
                        "subCategory": "BALANCAS",
                        "address": {
                            "street": "Rodovia Washington Luís",
                            "number": "KM 197+100",
                            "city": "Corumbataí",
                            "state": "SP",
                            "point": {
                                "latitude": -22.26734202,
                                "longitude": -47.70399607
                            }
                        },
                        "active": true
                    },
                    {
                        "id": "61b0c57caeddba55769f812c",
                        "category": "FISCALIZACAO",
                        "subCategory": "BALANCAS",
                        "address": {
                            "street": "Rodovia Washington Luís",
                            "number": "KM 155+180",
                            "city": "Cordeirópolis",
                            "state": "SP",
                            "point": {
                                "latitude": -22.49722347,
                                "longitude": -47.41750679
                            }
                        },
                        "active": true
                    },
                    {
                        "id": "61b0c5810b666c4e05a148e8",
                        "name": "KM 112",
                        "category": "FISCALIZACAO",
                        "subCategory": "BALANCAS",
                        "address": {
                            "street": "Rodovia Anhanguera",
                            "number": "KM 112",
                            "city": "Sumaré",
                            "state": "SP",
                            "point": {
                                "latitude": -22.81269811,
                                "longitude": -47.21068737
                            }
                        },
                        "active": true
                    },
                    {
                        "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
                    }
                ]
            }
        }
    ],
    "source": "MAPLINK",
    "createdAt": 1654721486362
}