Exemplo 1 - Pedágio de uma rota simples

Veremos um exemplo de como utilizar a Toll for Maps para obter os pedágios de uma rota gerada pela Directions API do Google.

Neste exemplo, temos um cálculo de pedágio simples para uma rota de 3 pontos de um trecho da Rodovia Ayrton Senna em São Paulo, vinda da resposta da Directions API, cuja requisição original foi a seguinte:

https://maps.googleapis.com/maps/api/directions/json?origin=-23.465395,-46.375007&waypoints=-23.465957,-46.371015&destination=-23.467154,-46.365598&mode=driving&key={CHAVE_API}

Requisição

A resposta da Directions API será usada como body na request para o endpoint https://api.maplink.global/toll/v1/directions, exemplo:

curl -X POST "https://api.maplink.global/toll/v1/directions?vehicleType=TRUCK_WITH_TWO_DOUBLE_AXLES" -H "Authorization: Bearer 3O0d0YjOL72Roqp5CrnGwh5yvgKH" -H "Content-Type: application/json" -d @C:\temp\Directions_Response.json

Onde:

  • vehicleType - Tipo de veículo a calcular o pedágio;

  • Directions_Response.json - Resposta da Directions API contendo a rota.

Resposta

A resposta virá no formato JSON. Em results serão obtidos os valores de pedágio de cada rota. Caso a Directions API for processada com rotas alternativas, será retornado 3 results, sendo 1 resultado para cada rota.

Dentro de cada results será retornado um objeto legs que corresponde a rota em si. O objeto irá conter o valor total da rota em totalCost e um objeto tolls com os valores e informações de cada pedágio presentes na rota.

Cada objeto retornado em tolls representa um pedágio e irá conter as seguintes informações:

  • name - Nome do pedágio;

  • address - Endereço do pedágio;

  • city - Cidade do pedágio;

  • state - Objeto contendo o nome do estado (name) e sua sigla (code);

  • country - País do pedágio;

  • concession - Concessionária responsável pelo pedágio;

  • coordinates - Coordenadas (latitude e longitude) do pedágio;

  • price - Valor por pedágio;

  • serviceTypes - Array com códigos para integração com sistemas de pagamento automático. Atualmente disponível apenas no Brasil (Código ANTT, Via Fácil e SemPararPay);

    • serviceId - Código para a integração;

    • name - Descrição do código do serviço.

A resposta completa pode ser conferida abaixo:

Em results serão obtidos os valores de pedágio de cada rota. Caso a Directions API tenha sido processada com rotas alternativas, será retornado 3 results, sendo 1 resultado para cada rota.

{
"results": [
{
"legs": [
{
"tolls": [
{
"id": "17",
"name": "Pedágio - Itaquaquecetuba Leste",
"address": "SP 070 - Rod. Ayrton Senna - Km 32,9",
"city": "Itaquaquecetuba",
"state": {
"name": "São Paulo",
"code": "SP"
},
"country": "Brasil",
"concession": "Ecopistas",
"coordinates": {
"latitude": -23.4656821,
"longitude": -46.3727036
},
"serviceTypes": [
{
"serviceId": "80",
"name": "Via Facil"
},
{
"serviceId": "35350700329000103",
"name": "ANTTCODE"
}
],
"price": 7.8
}
],
"legTotalCost": 7.8
},
{
"tolls": [],
"legTotalCost": 0
}
],
"totalCost": 7.8
}
]
}