Toll for Maps

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