Ograniczenia prędkości

Roads API zwraca ograniczenie prędkości dla określonych odcinków dróg. W przypadku odcinków dróg z różnymi ograniczeniami prędkości zwracane jest maksymalne ograniczenie prędkości dla samochodów na danym odcinku.

Nie możemy zagwarantować dokładności danych o ograniczeniach prędkości zwracanych przez Roads API. Podane dane o ograniczeniach prędkości nie są aktualizowane w czasie rzeczywistym i mogą być szacunkowe, niedokładne, niekompletne lub nieaktualne. Szczegółowe informacje o zasięgu znajdziesz w sekcji, w której opisano regiony, w których dostępne są dane o ograniczeniach prędkości.

Żądania

Żądania dotyczące ograniczeń prędkości wysyłaj za pomocą protokołu HTTPS w tej postaci:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

Użycie parametru

Parametry wymagane

  • Parametr path lub placeId.

    • path – lista maksymalnie 100 par szerokości i długości geograficznej reprezentujących ścieżkę. Wartości szerokości i długości geograficznej muszą być oddzielone przecinkami. Pary szerokości i długości geograficznej muszą być oddzielone znakiem potoku „|”. Gdy podasz parametr path, interfejs API najpierw dopasuje ścieżkę do najbardziej prawdopodobnej drogi, którą przejechał pojazd (tak jak w przypadku snapToRoads żądania), a następnie określi ograniczenie prędkości dla odpowiedniego odcinka drogi. Jeśli nie chcesz, aby interfejs API dopasowywał ścieżkę, musisz przekazać parametr placeId w sposób opisany poniżej. Poniższy przykład przedstawia parametr path z 3 parami szerokości i długości geograficznej: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
    • placeId – identyfikatory miejsc reprezentujące co najmniej 1 odcinek drogi. Upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie do innego typu miejsca. W każdym żądaniu możesz przekazać maksymalnie 100 identyfikatorów miejsc. Odpowiedź zawiera ograniczenie prędkości dla każdego identyfikatora miejsca w żądaniu.

      Interfejs API nie dopasowuje do drogi podanych identyfikatorów miejsc. Aby znaleźć odpowiednie identyfikatory miejsc, możesz wysłać żądanie snapToRoads lub nearestRoads , a następnie podać je jako dane wejściowe w żądaniu speedLimits. Poniższy przykład przedstawia parametr placeId z 2 identyfikatorami miejsc: placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y

  • key – klucz interfejsu API aplikacji. Aplikacja musi się identyfikować za każdym razem, gdy wysyła żądanie do Roads API dołączając do każdego żądania klucz interfejsu API. Dowiedz się, jak uzyskać klucz.

Parametry opcjonalne

  • units – określa, czy ograniczenia prędkości mają być zwracane w kilometrach czy milach na godzinę. Można ustawić wartość KPH lub MPH. Domyślnie jest ustawiona wartość KPH.

Odpowiedzi

W odpowiedzi speedLimits mogą występować te elementy:

  • speedLimits – tablica metadanych drogi. Każdy element składa się z tych pól:
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez Roads API będą odpowiadać odcinkom dróg.
    • speedLimit – ograniczenie prędkości na danym odcinku drogi.
    • units – zwraca wartość KPH lub MPH.
  • snappedPoints – tablica dopasowanych punktów. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametr path. Każdy punkt składa się z tych pól:
    • location – zawiera wartość latitude i longitude.
    • originalIndex – liczba całkowita wskazująca odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna odpowiadać dopasowanej wartości w odpowiedzi. Te wartości są indeksowane od 0, więc punkt z wartością originalIndex równą 4 będzie dopasowaną wartością 5. szerokości i długości geograficznej przekazanej do parametru path.
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez Roads API będą odpowiadać odcinkom dróg. Parametr placeId można przekazać w żądaniu ograniczeń prędkości, aby określić ograniczenie prędkości na danym odcinku drogi.
  • warning_message – ciąg znaków zawierający ostrzeżenie widoczne dla użytkownika.

Przykładowe żądanie z użyciem ścieżki

To żądanie pobiera ograniczenie prędkości dla każdego odcinka drogi znajdującego się najbliżej określonych par szerokości i długości geograficznej na ścieżce przecinającej most Vasco da Gamy w Lizbonie w Portugalii.

Żądanie

https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY

Odpowiedź

{
  speedLimits:
  [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ],
  snappedPoints:
  [
    {
      location:
      {
        latitude: 38.75807927603043,
        longitude: -9.037417546438084
      },
      originalIndex: 0,
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE"
    },
    {
      location:
      {
        latitude: 38.689653701836896,
        longitude: -9.177051486847693
      },
      originalIndex: 1,
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU"
    },
    {
      location:
      {
        latitude: 41.13993011767777,
        longitude: -8.609400794783655
      },
      originalIndex: 2,
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M"
    }
  ],
  warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation."
}

Zwróć uwagę na komunikat ostrzegawczy dotyczący rzadkiego rozmieszczenia punktów w powyższej odpowiedzi. Jeśli żądasz ograniczeń prędkości dla najbliższych odcinków dróg w dowolnych punktach, musisz wywołać metodę speedLimits z identyfikatorami miejsc pobranymi z punktu końcowego nearestRoads.

Przykładowe żądanie z użyciem identyfikatorów miejsc

Zamiast używać par szerokości i długości geograficznej, możesz przekazać identyfikatory miejsc odcinków dróg. Zalecamy uzyskanie identyfikatorów miejsc odcinków dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekażesz identyfikatory miejsc, interfejs API zwróci ograniczenie prędkości dla odcinka drogi reprezentowanego przez każdy identyfikator miejsca. Interfejs API nie dopasowuje do drogi podanych identyfikatorów miejsc.

Poniższy przykład ilustruje, jak wysyłać żądanie podania ograniczeń prędkości dla niektórych odcinków dróg przecinających most Vasco da Gamy w Lizbonie w Portugalii.

Żądanie

https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY

Odpowiedź

{
  "speedLimits": [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ]
}

Zalecenia dotyczące użytkowania

Aby zminimalizować liczbę wywołań usługi Speed Limit, zalecamy próbkowanie lokalizacji zasobów co 5–15 minut (dokładna wartość zależy od prędkości, z jaką porusza się zasób). Jeśli zasób jest nieruchomy, wystarczy jedna próbka lokalizacji (nie trzeba wykonywać wielu wywołań).

Aby zminimalizować ogólne opóźnienie, zalecamy wywoływanie usługi Speed Limit po zgromadzeniu pewnej ilości danych, a nie za każdym razem, gdy otrzymywana jest lokalizacja zasobu mobilnego.

Dlaczego brakuje niektórych lub wszystkich ograniczeń prędkości?

Najczęstszą przyczyną braku speedLimits jest żądanie ograniczenia prędkości w miejscu, które nie jest odcinkiem drogi.

W powyższym przykładzie użyto mostu Vasco da Gamy, aby zilustrować koncepcje. Most ten obsługuje drogę E90 przecinającą rzekę Tag. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy odcinek drogi w powyższej odpowiedzi jest częścią drogi E90 i ma identyfikator miejsca ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Jeśli w przykładowym żądaniu zastąpisz identyfikator miejsca drogi identyfikatorem miejsca mostu, w odpowiedzi w tablicy speedLimits będą tylko 2 ograniczenia prędkości, ponieważ identyfikator miejsca mostu nie odnosi się do pojedynczego odcinka drogi. Ponadto, jeśli żaden z identyfikatorów miejsc nie dotyczy odcinka drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Wysyłając żądania dotyczące ograniczeń prędkości z użyciem identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie do innego typu miejsca. Identyfikatory miejsc poszczególnych odcinków dróg najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads, z których każde może zwrócić wiele identyfikatorów miejsc w jednym wywołaniu.

Co zrobić, jeśli na odcinku drogi obowiązują różne ograniczenia prędkości dla samochodów osobowych i ciężarowych?

Interfejs Roads API zwraca tylko maksymalne opublikowane ograniczenie prędkości dla samochodów osobowych.