Ograniczenia prędkości

Roads API zwraca ograniczenie prędkości dla podanych segmentów dróg. W przypadku segmentów dróg z różnymi ograniczeniami prędkości zwracane jest maksymalne ograniczenie prędkości dla samochodów osobowych na danym segmencie.

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 Szczegóły zasięgu, gdzie dowiesz się, w jakich regionach 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żywanie parametrów

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 segmentu 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 segment drogi. Upewnij się, że każdy identyfikator miejsca odnosi się do segmentu 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 do żądania speedLimits. Poniższy przykład przedstawia parametr placeId z 2 identyfikatorami miejsc: placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y

  • key – klucz interfejsu API Twojej aplikacji. Twoja 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 to 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ć segmentom dróg.
    • speedLimit – ograniczenie prędkości na danym segmencie 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ć segmentom dróg. Parametr placeId można przekazać w żądaniu ograniczeń prędkości, aby określić ograniczenie prędkości na danym segmencie 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 segmentu drogi najbliższego określonym parom 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 rzadkości punktów w powyższej odpowiedzi. Jeśli żądasz ograniczeń prędkości dla najbliższych segmentów dróg w dowolnych punktach, musisz wywołać speedLimits z identyfikatorami miejsc pobranymi z nearestRoads punktu końcowego zamiast.

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 segmentów dróg. Zalecamy uzyskanie identyfikatorów miejsc segmentów dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekażesz identyfikatory miejsc, interfejs API zwróci ograniczenie prędkości dla segmentu 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 segmentó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 otrzymasz lokalizację zasobu mobilnego.

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

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

W powyższym przykładzie do zilustrowania koncepcji użyto mostu Vasco da Gamy. Most ten obsługuje drogę E90 przecinającą rzekę Tag. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy segment 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 segmentu drogi. Ponadto, jeśli żaden z identyfikatorów miejsc nie dotyczy segmentu drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Wysyłając żądania ograniczeń prędkości z użyciem identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do segmentu drogi, a nie do innego typu miejsca. Identyfikatory miejsc poszczególnych segmentó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 segment drogi ma oddzielne ograniczenia prędkości dla samochodów osobowych i ciężarowych?

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