Ejemplo 2 – Peajes con tarifas por franja horaria
Algunas estaciones de peaje, sobre todo en Argentina y Chile, tienen precios condicionales que varían según el día, la hora o la estación del año en que se recorra la ruta.
Por ejemplo, en Argentina los concesionarios tienen tarifas especiales para las horas punta, fines de semana y festivos, o épocas concretas del año como temporada baja y temporada alta.
A continuación figura el cuadro de tarifas de la concesionaria argentina AUSA, que ofrece dos tipos de tarifas, una para las horas normales y otra para las horas punta.
En Brasil, este tipo de tarifa es más raro, pero algunas concesionarias ya cobran importes diferentes los fines de semana y festivos
En este ejemplo tenemos una ruta con un camión de 4 ejes que pasará por el peaje de Sarmiento en Argentina. Según la tabla anterior, este peaje tiene valores diferentes para las horas punta.
A continuación se muestra la solicitud realizada a la API de Directions:
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={API_KEY}
A continuación se muestra la solicitud a la API de Toll for Maps, donde la respuesta de Directions se enviará en el cuerpo de la solicitud al punto final https://api.maplink.global/toll/v1/directions, como en el ejemplo siguiente:
curl -X POST "https://api.maplink.global/toll/v1/directions?vehicleType=TRUCK_WITH_FOUR_DOUBLE_AXLES" -H "Authorization: Bearer 3O0d0YjOL72Roqp5CrnGwh5yvgKH" -H "Content-Type: application/json" -d @C:\temp\Directions_Response.json
Dónde:
vehicleType
– Tipo de vehículo que calcula el peaje;Directions_Response.json
– Respuesta de la Directions API que contiene la ruta.
El resultado puede verse en el siguiente mapa:
La respuesta llegará en formato JSON.
Los peajes de cada ruta se obtendrán de results
.
Si la Directions API se procesa con rutas alternativas, devolverá 3 results
, con 1 resultado para cada ruta.
Dentro de cada results
se devolverá un objeto legs
que corresponde a la propia ruta. El objeto contendrá el valor total de la ruta en totalCost
y un objeto tolls
con los valores e información de cada peaje de la ruta.
Dentro de cada objeto en tolls
tendremos la información de cada peaje. Con las siguientes diferencias:
price
– Tarifa normal en moneda local, cobrado en hora no pico, o en cualquier otra condición;conditions
– Array com todos os valores condicionais do pedágio. Informa se há 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 con los días de la semana a los que se aplica la tarifa. Los valores posibles son:[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
subConditions
– Indica subcondiciones para el día de la semana al que se aplica la tarifa;periods
– Array con los periodos en los que se aplica la tarifa en el día de la semana. En este ejemplo, existe el periodo"NORMAL"
y el periodo"HOLIDAY"
. Los valores posibles son: [NORMAL, HOLIDAY, LOW_SEASON, HIGH_SEASON
].timesWindow
– Array con los intervalos de tiempo en formato["HH:mm:ss = HH:mm:ss"
].billingsType
– Tipo de cobro de peaje. Valores posibles: [NORMAL, TAG
];value
– Importe del peaje en moneda local.
A continuación encontrará la respuesta completa:
{ "id": "658084734d0aa15a056e8f31", "clientId": "maplink", "totalDistance": 327, "totalNominalDuration": 31, "averageSpeed": 52.00, "tollCosts": 508.03, "legs": [ { "distance": 327, "nominalDuration": 31, "averageSpeed": 52.0, "points": "zh~qEfpncJJ]HM\\Q\\C^LRTJb@@RAVOj@?XS\\aDvF", "tollCalculation": { "tolls": [ { "id": "1032", "name": "Pórtico - Sarmiento", "address": "Avenida Sarmiento, 4254", "city": " ", "state": { "name": "Ciudad Autonoma de Buenos Aires", "code": "Ciudad Autonoma de Buenos Aires" }, "country": "Argentina", "concession": "Ausa", "direction": "WEST", "coordinates": { "latitude": -34.5671991, "longitude": -58.4063059 }, "serviceTypes": [], "price": 508.03, "conditions": [ { "daysOfWeek": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY" ], "subConditions": [ { "periods": [ "NORMAL" ], "subConditions": [ { "timesWindow": [ "16:00:00 - 19:59:59", "07:00:00 - 10:59:59" ], "subConditions": [ { "billingsType": [ "NORMAL" ], "value": 1221.56 } ] } ] } ] }, { "daysOfWeek": [ "SUNDAY", "SATURDAY" ], "subConditions": [ { "periods": [ "NORMAL" ], "subConditions": [ { "timesWindow": [ "17:00:00 - 20:59:59" ], "subConditions": [ { "billingsType": [ "NORMAL" ], "value": 1221.56 } ] } ] } ] }, { "daysOfWeek": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SUNDAY", "SATURDAY" ], "subConditions": [ { "periods": [ "HOLIDAY" ], "subConditions": [ { "timesWindow": [ "17:00:00 - 20:59:59" ], "subConditions": [ { "billingsType": [ "NORMAL" ], "value": 1221.56 } ] } ] } ] } ] } ], "legTotalCost": 508.03, "vehicleType": "TRUCK_WITH_FOUR_DOUBLE_AXLES" } } ], "source": "MAPLINK" }