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:
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
}
]
}