Exemplo 2 - Pedágio de livre passagem (Free Flow)

Nesse exemplo, vamos considerar como a Toll for Maps API retorna os valores de praças de pedágio ou pórticos, do tipo livre passagem (Free Flow)

No exemplo abaixo vamos requisitar uma rota entre Campinas-SP e Mogi-Guaçu-SP. Abaixo segue a requisição dessa rota feita para a Directions API do Google:

https://maps.googleapis.com/maps/api/directions/json?origin=-22.361126269657383,-46.957666772776484&destination=-22.84872588900371,-47.04198582063482&mode=driving&key={CHAVE_API}

A resposta da Directions API é usada como body na requisição para o endpoint api.maplink.global/toll/v1/directions, exemplo:

Requisição

Abaixo temos a requisição para a Toll for Maps API, onde vamos informar que queremos o cálculo de pedágio para um caminhão de dois eixos (vehicleType=TRUCK_WITH_TWO_DOUBLE) e queremos o retorno de pedágio que utilizam o sistema “Free Flow” (&billing=FREE_FLOW).

No body da requisição devemos enviar a resposta obtida na Directions, conforme exemplo abaixo:

curl -X POST "https://api.maplink.global/toll/v1/directions?vehicleType=TRUCK_WITH_TWO_DOUBLE_AXLES&billing=FREE_FLOW" -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 objeto em 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:

{
"results": [
{
"legs": [
{
"tolls": [
{
"id": "821",
"name": "Pórtico - Santo Antônio de Posse",
"address": "SP 340, Km 147+100",
"city": "Santo Antônio de Posse",
"state": {
"name": "São Paulo",
"code": "SP"
},
"country": "Brasil",
"concession": "Renovias",
"direction": "SOUTH",
"coordinates": {
"latitude": -22.56286671,
"longitude": -47.00042384
},
"serviceTypes": [],
"price": 6.9
},
{
"id": "174",
"name": "Pedágio - Jaguariuna",
"address": "SP 340 - Km 123,5",
"city": "Jaguariuna",
"state": {
"name": "São Paulo",
"code": "SP"
},
"country": "Brasil",
"concession": "Renovias",
"direction": "SOUTH",
"coordinates": {
"latitude": -22.7711332,
"longitude": -47.0222253
},
"serviceTypes": [
{
"serviceId": "90",
"name": "Via Facil"
},
{
"serviceId": "35353401235000103",
"name": "ANTTCODE"
}
],
"price": 6.9
}
],
"legTotalCost": 13.8
}
],
"totalCost": 13.8
}
]
}