Oblicz opłaty za trasę

Podczas obliczania trasy lub macierzy tras warto wziąć pod uwagę wszelkie opłaty za przejazd. W przypadku wybranych miast możesz obliczyć szacowaną wysokość opłaty za przejazd na trasie w odpowiedniej walucie.

Aby dowiedzieć się, jak uzyskać opłaty za korzystanie z macierzy tras, przeczytaj artykuł Obliczanie opłat za przejazd dla macierzy tras.

Listę obsługiwanych lokalizacji płatnych znajdziesz w dokumentacji TollPass.

Jak obliczamy opłaty drogowe

Interfejs Routes API oblicza szacunkową opłatę za przejazd, uwzględniając wszelkie zniżki lub karnety dostępne dla kierowcy lub pojazdu, a także najwygodniejsze formy płatności. Jeśli na danej trasie nie ma dostępnych opłat za przejazd, interfejs Routes API informuje o tym, że opłata jest pobierana z nieznaną opłatą.

Aby uzyskać dokładną szacunkową wysokość opłat, podaj w prośbie te informacje:

  • Typ emisji pojazdu używanego na trasie (VehicleEmissionType). Jeśli nie podasz typu emisji, opłata za pojazd napędzany benzyną zostanie zwrócona.
  • Wszystkie opłaty za przejazd pojazdem i kierowcą korzystają z TollPass. Interfejs API określa dokładne opłaty za przejazd na podstawie informacji o opłatach i zwraca ceny gotówkowe, gdy podane w żądaniu informacje o płatnych opłatach nie znajdują się na trasie.
  • W razie potrzeby zaznacz opcję unikania opłat. Jeśli chcesz unikać dróg płatnych tam, gdzie to możliwe, dodaj avoidTolls jako RouteModifier.

Oblicz opłaty za przejazd

Aby obliczyć opłaty za przejazd na podstawie winietu, musisz w nim określić wszystkie winiety. Interfejs API zwraca wtedy ceny biletów.

  • Jeśli podasz nieprawidłową kartę, zostanie ona zignorowana.

  • Jeśli określisz wiele kart opłat jako tablicę, interfejs API spróbuje obliczyć cenę dla każdej trasy w przypadku każdej karty.

Sposób działania winiet może się różnić w zależności od regionu.

  • W przypadku winiety opłaty mogą być niższe: w niektórych regionach kierowca lub pojazd z winietą mogą płacić inne opłaty niż te, które go nie mają. Jeśli na przykład masz bilet Good To Go! w Seattle w stanie Waszyngton, zapłacisz niższą kwotę niż w przypadku braku przepustki.

  • Niektóre drogi mogą wymagać winiety płatnej: w niektórych regionach, np. w Indonezji, występują drogi wymagające opłaty za przejazd. Jeśli nie określisz opłaty za przejazd na trasie, która jest wymagana, interfejs API nie zwróci opłaty za przejazd.

Obliczanie opłat drogowych na poszczególnych trasach

W tym przykładzie użyto metody computeRoutes do zwrócenia informacji o opłatach z szacunkową ceną w przypadku użycia winiety. W tym przykładzie:

  • Ustaw w polu tablicy extraComputations wartość TOLLS, aby włączyć obliczanie informacji o opłatach.

  • Określ typ pojazdu i typ biletu na przejazd w polu routeModifiers w żądaniu. Zwrócona kwota opłaty zależy od ceny używanej przez określony typ pojazdu i bilet. Jeśli podasz więcej niż 1 karnet, zostaną zwrócone najtańsze ceny.

  • Użyj maski pola odpowiedzi, aby skonfigurować metodę zwracania w odpowiedzi informacji o opłatach. W tym przykładzie żądanie zawierało w masce pola odpowiedzi te właściwości:

    • routes.travelAdvisory.tollInfo do zwrócenia informacji o całej trasie.

    • routes.legs.travelAdvisory.tollInfo, aby zwrócić informacje o każdym etapie.

Prośba o informacje o opłatach

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "extraComputations": ["TOLLS"],
  "routeModifiers":{
    "vehicleInfo":{
      "emissionType": "GASOLINE"
    },
    "tollPasses": [
      "US_MA_EZPASSMA",
      "US_WA_GOOD_TO_GO"
    ]
  }
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.travelAdvisory.tollInfo,routes.legs.travelAdvisory.tollInfo' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Odpowiedź zawierająca informacje o opłatach

Odpowiedź zawiera informacje o opłatach w obiekcie TollInfo (REST) lub TollInfo (gRPC). W tym przykładzie zwracane są informacje o opłatach za całą trasę i jej każdy jej etap.

{
  "routes": [
    {
      "legs": [
        {
          "travelAdvisory": {
            "tollInfo": {
              "estimatedPrice": [
                {
                  "currencyCode": "USD",
                  "units": "4",
                  "nanos": 400000000
                }
              ]
            }
          }
        }
      ],
      "distanceMeters": 150338,
      "duration": "6650s",
      "travelAdvisory": {
        "tollInfo": {
          "estimatedPrice": [
            {
              "currencyCode": "USD",
              "units": "4",
              "nanos": 400000000
            }
          ]
        }
      }
    }
  ]
}