Nesse exemplo, vamos considerar como a API retorna os valores de praças de pedágio com valores diferente para dias de semana, horários ou temporada.
Algumas praças de pedágio, principalmente na Argentina e no Chile, possuem valores condicionantes que variam conforme o dia, horário ou época do ano em que a rota está sendo realizada.
Por exemplo, na Argentina as concessionárias possuem tarifas especiais para horários de pico, finais de semana e feriados, ou épocas específicas do ano como baixa temporada e alta temporada.
Abaixo segue a tabela de tarifas da concessionária AUSA da Argentina, onde são disponibilizadas dois tipos de tarifas, uma para horário comum e outra para horário de pico.
Nesse exemplo temos um rota com um caminhão de 4 eixos que passará pelo pórtico de Sarmiento, na Argentina. Conforme a tabela acima, esse pórtico possui valores condicionantes para os horários de pico. Abaixo a requisição completa:
{
"calculationMode": "THE_FASTEST",
"points": [
{
"latitude": -34.566702,
"longitude": -58.406596,
"siteId": "SP"
},
{
"latitude": -34.566436,
"longitude": -58.408582,
"siteId": "CAMPINAS"
}
],
"toll": {
"vehicleType": "TRUCK_WITH_FOUR_DOUBLE_AXLES",
"billing": "FREE_FLOW"
}
}
O resultado pode ser visualizado no mapa abaixo:
Assim como nos exemplos anteriores, em tollCosts temos o valor total dos pedágios em toda a rota. Em cada objeto retornado em legs, será retornado um objeto tollCalculation contendo um objeto tolls com os valores e informações de cada pedágio no trecho correspondente, e a legTotalCost que mostra o valor total de pedágios naquele trecho.
Dentro de cada objeto em tolls teremos as informações de cada pedágio. Com as seguintes diferenças:
-
price - Valor normal do pedágio na moeda local, cobrado em horários sem ser pico ou alguma condicionante;
-
conditions - Array com todos os valores condicionais do pedágio. Informa haver variações de preços devido alguma condição de dia da semana, horário e se é realizado com pagamento automático ou manual. No caso desse exemplo, temos as seguintes informações:
-
daysOfWeek - Array com os dias da semana a qual se aplica a tarifa. Valores possíveis são: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
-
subConditions - Indica subcondições para o dia da semana a qual se aplica a tarifa;
-
periods - Array com os períodos em que se aplica a tarifa no dia da semana. Neste exemplo, há o período “NORMAL” e o período “HOLIDAY”. Os valores possíveis são: [NORMAL, HOLIDAY, LOW_SEASON, HIGH_SEASON].
-
timesWindow - Array com os intervalos de horário no formato ["HH:mm:ss = HH:mm:ss"].
-
billingsType - Tipo de cobrança de pedágio. Valores possíveis: [NORMAL, TAG ];
-
value - Valor da tarifa condicionante do pedágio na moeda local.
-
-
A resposta completa encontra-se abaixo. As coordenadas estão codificadas como object:
{
"id": "63e3fd4714afae02576eff15",
"clientId": "qBPERsYpGuBp9ksxA1EGncIYlVM8ULee",
"totalDistance": 327,
"totalNominalDuration": 31,
"averageSpeed": 52.00,
"tollCosts": 250.26,
"legs": [
{
"distance": 327,
"nominalDuration": 31,
"averageSpeed": 52.0,
"points": [
{
"latitude": -34.5667,
"longitude": -58.4066
},
{
"latitude": -34.56676,
"longitude": -58.40645
},
{
"latitude": -34.56681,
"longitude": -58.40638
},
{
"latitude": -34.56696,
"longitude": -58.40629
},
{
"latitude": -34.56711,
"longitude": -58.40627
},
{
"latitude": -34.56727,
"longitude": -58.40634
},
{
"latitude": -34.56737,
"longitude": -58.40645
},
{
"latitude": -34.56743,
"longitude": -58.40663
},
{
"latitude": -34.56744,
"longitude": -58.40673
},
{
"latitude": -34.56743,
"longitude": -58.40685
},
{
"latitude": -34.56735,
"longitude": -58.40707
},
{
"latitude": -34.56735,
"longitude": -58.4072
},
{
"latitude": -34.56725,
"longitude": -58.40735
},
{
"latitude": -34.56644,
"longitude": -58.40859
},
{
"latitude": -34.56644,
"longitude": -58.40859
}
],
"tollCalculation": {
"tolls": [
{
"id": "1032",
"name": "Pórtico - Sarmiento",
"address": "Avenida Sarmiento, 4254",
"city": " ",
"state": {
"name": "Ciudad Autonoma de Buenos Aires",
"code": "CABA"
},
"country": "Argentina",
"concession": "Ausa",
"direction": "WEST",
"coordinates": {
"latitude": -34.5671991,
"longitude": -58.4063059
},
"serviceTypes": [], ],
"price": 250.26,
"conditions": [
{
"daysOfWeek": [
"THURSDAY",
"TUESDAY",
"MONDAY",
"WEDNESDAY",
"FRIDAY"
],
"subConditions": [
{
"periods": [
"NORMAL"
],
"subConditions": [
{
"timesWindow": [
"16:00:00 - 19:59:59",
"07:00:00 - 10:59:59"
],
"subConditions": [
{
"billingsType": [
"NORMAL"
],
"value": 601.76
}
]
}
]
}
]
},
{
"daysOfWeek": [
"SATURDAY",
"SUNDAY"
],
"subConditions": [
{
"periods": [
"NORMAL"
],
"subConditions": [
{
"timesWindow": [
"17:00:00 - 20:59:59"
],
"subConditions": [
{
"billingsType": [
"NORMAL"
],
"value": 601.76
}
]
}
]
}
]
},
{
"daysOfWeek": [
"THURSDAY",
"TUESDAY",
"SATURDAY",
"MONDAY",
"SUNDAY",
"WEDNESDAY",
"FRIDAY"
],
"subConditions": [
{
"periods": [
"HOLIDAY"
],
"subConditions": [
{
"timesWindow": [
"17:00:00 - 20:59:59"
],
"subConditions": [
{
"billingsType": [
"NORMAL"
],
"value": 601.76
}
]
}
]
}
]
}
]
}
],
"legTotalCost": 250.26
}
}
],
"source": "MAPLINK",
"createdAt": "2023-02-08T19:51:35.086073Z",
"expireIn": "2023-02-15T19:51:35.086133Z""
}