Ograniczenia prędkości

Roads API zwraca opublikowane ograniczenie prędkości dla danego odcinka drogi. W przypadku odcinków dróg ze zmiennymi ograniczeniami prędkości zwracane jest domyślne ograniczenie prędkości dla danego odcinka.

Nie możemy zagwarantować dokładności danych o ograniczeniach prędkości zwracanych przez interfejs Roads API. Podane dane o ograniczeniach prędkości nie są aktualizowane w czasie rzeczywistym i mogą być szacunkowe, niedokładne, niekompletne lub nieaktualne. Zobacz szczegóły zasięgu, aby dowiedzieć się, w których regionach dostępne są dane o ograniczeniach prędkości.

Żądania

Wysyłaj żądania dotyczące ograniczeń prędkości za pomocą protokołu HTTPS w tej formie:

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

Użycie parametru

Parametry wymagane

  • Może to być 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ć rozdzielone przecinkami. Pary współrzędnych geograficznych muszą być rozdzielone znakiem „|”. Gdy podasz parametr path, interfejs API najpierw dopasuje ścieżkę do najbardziej prawdopodobnej drogi, którą przejechał pojazd (tak jak w przypadku żądania snapToRoads), a następnie określi ograniczenie prędkości dla odpowiedniego odcinka drogi. Jeśli nie chcesz, aby interfejs API przyciągał ścieżkę, musisz przekazać parametr placeId, jak opisano 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 miejsca 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 przesłać maksymalnie 100 identyfikatorów miejsc. Interfejs API nie dopasowuje podanych identyfikatorów miejsc do dróg. Odpowiedź zawiera ograniczenie prędkości dla każdego identyfikatora miejsca w żądaniu. Możesz wysłać żądanie snapToRoads lub nearestRoads, aby znaleźć odpowiednie identyfikatory miejsc, a następnie podać je jako dane wejściowe w żądaniu speedLimits. W tym przykładzie parametr placeId zawiera 2 identyfikatory miejsc: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • 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że mieć wartość KPH lub MPH. Domyślna wartość 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 zwrócone przez interfejs Roads API będą odpowiadać odcinkom dróg.
    • speedLimit – ograniczenie prędkości na tym odcinku drogi.
    • units – zwraca wartość KPH lub MPH.
  • snappedPoints – tablica przyciągniętych 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ść latitudelongitude.
    • originalIndex – liczba całkowita wskazująca odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być mapowana na przybliżoną wartość w odpowiedzi. Wartości te są indeksowane od 0, więc punkt o wartości originalIndex równej 4 będzie przyciągniętą wartością 5 współrzędnej geograficznej przekazaną do parametru path.
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez interfejs Roads API będą odpowiadać odcinkom dróg. Parametr placeId można przekazać w żądaniu dotyczącym ograniczeń prędkości, aby określić ograniczenie prędkości na danym odcinku drogi.
  • warning_message – ciąg tekstowy 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 najbliższego parom współrzędnych geograficznych określonych na ścieżce przecinającej most Vasco da Gamy w Lizbonie w Portugalii.

Wyślij prośbę

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 odpowiedzi powyżej. Jeśli chcesz uzyskać informacje o ograniczeniach prędkości na najbliższych odcinkach dróg w dowolnych punktach, musisz wywołać speedLimits z identyfikatorami miejsc pobranymi z punktu końcowego nearestRoads.

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

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

Poniższy przykład zawiera żądanie dotyczące ograniczeń prędkości na niektórych odcinkach drogi, które przecinają most Vasco da Gama w Lizbonie w Portugalii.

Wyślij prośbę

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 ograniczenia prędkości, zalecamy próbkowanie lokalizacji zasobów w odstępach od 5 do 15 minut (dokładna wartość zależy od prędkości, z jaką porusza się zasób). Jeśli komponent 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 urządzenia mobilnego.

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

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

Powyższy przykład wykorzystuje most Vasco da Gamy do zilustrowania koncepcji. Most ten obsługuje drogę E90, która przebiega nad 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 drogi identyfikatorem mostu, w odpowiedzi w tablicy speedLimits znajdą się tylko 2 ograniczenia prędkości, ponieważ identyfikator mostu nie odnosi się do pojedynczego odcinka drogi. Jeśli żaden z identyfikatorów miejsca nie dotyczy odcinka drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Podczas wysyłania żądań dotyczących ograniczeń prędkości za pomocą identyfikatorów miejsc upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie do innego typu miejsca. Identyfikatory miejsc dla poszczególnych odcinków dróg najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads. Oba te żądania mogą zwracać wiele identyfikatorów miejsc w ramach jednego wywołania.