Toll for Maps

Exemplo 1 – Pedágio de uma rota simples

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 Google Maps 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}

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

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.

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. Também será retornado o campo vehicleType que indica o veículo utilizado nesse trecho.

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;
    • serviceId – Código para a integração;
    • name – Descrição do código do serviço.

A resposta completa encontra-se abaixo:

{
    "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
        }
    ]
}