Ograniczenia prędkości

Funkcja Roads API zwraca podane ograniczenie prędkości na danym odcinku drogi. W przypadku segmentów dróg z różnymi ograniczeniami prędkości zwracane jest domyślne ograniczenie prędkości dla danego segmentu.

Nie można 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ć niedokładne, niekompletne lub nieaktualne. Aby sprawdzić, w których regionach są dostępne dane o ograniczeniach prędkości, zobacz szczegóły zasięgu.

Żądania

Żądanie dotyczące ograniczeń prędkości musi być wysyłane przez HTTPS i ma następującą formę:

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ść/długość geograficzna reprezentujących ścieżkę. Wartości szerokości i długości geograficznej muszą być rozdzielone przecinkami. Pary współrzędnych geograficzne muszą być rozdzielone znakiem pionowym „|”. Gdy podasz parametr path, interfejs API najpierw dopasowuje ścieżkę do najprawdopodobniejszej drogi, którą porusza się pojazd (tak jak w przypadku żądania snapToRoads), a potem określa ograniczenie prędkości na odpowiednim odcinku drogi. Jeśli nie chcesz, aby interfejs API przycinał ścieżkę, musisz przekazać parametr placeId w sposób podany poniżej. Ten przykład przedstawia parametr path z 3 parami współrzędnych: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
    • placeId – identyfikatory miejsc reprezentujące co najmniej 1 fragment drogi. Upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie innego rodzaju miejsca. W każdej prośbie możesz podać maksymalnie 100 identyfikatorów miejsc. Interfejs API nie wykonuje przycinania do drogi w przypadku podanych identyfikatorów miejsc. Odpowiedź zawiera limit prędkości dla każdego identyfikatora miejsca podanego w żądaniu. Aby znaleźć odpowiednie identyfikatory miejsc, możesz wysłać żądanie snapToRoads lub nearestRoads, a potem podać je jako dane wejściowe w żądaniu speedLimits. Ten przykład przedstawia parametr placeId z 2 identyfikatorami miejsc:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key – klucz API aplikacji. Aplikacja musi się identyfikować za każdym razem, gdy wysyła żądanie do interfejsu 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żesz ustawić wartość KPH lub MPH. Domyślna wartość to KPH.

Odpowiedzi

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

  • speedLimits – tablica metadanych dróg. Każdy element zawiera te pola:
    • placeId – niepowtarzalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez funkcję Roads API będą odpowiadać segmentom dróg.
    • speedLimit – ograniczenie prędkości na tym odcinku drogi.
    • units – zwraca wartość KPH lub MPH.
  • snappedPoints – tablica punktów przyciętej ścieżki. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametr path. Każdy punkt zawiera te pola:
    • location – zawiera wartość latitude i longitude.
    • originalIndex – liczba całkowita wskazująca odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być mapowana na wartość zweryfikowaną w odpowiedzi. Te wartości są indeksowane od 0, więc punkt o wartości originalIndex 4 będzie wartością zaokrągloną 5. wartości współrzędnych geograficznych (szerokości i długości geograficznej) przekazanych parametrowi path.
    • placeId – niepowtarzalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez funkcję Roads API będą odpowiadać segmentom dróg. Wartość placeId może być przekazywana 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ład żądania z użyciem ścieżki

To żądanie zwraca ograniczenie prędkości na każdym odcinku drogi najbliższym podanym parom współrzędnych geograficznych w ścieżce przecinającej most Vasco da Gama 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 ostrzeżenie dotyczące rzadkich punktów w powyższym komunikacie. Jeśli chcesz uzyskać limity prędkości na najbliższych odcinkach drogi 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 par szerokości i długości geograficznej możesz przekazywać identyfikatory miejsc na odcinkach dróg. Zalecamy uzyskanie identyfikatorów miejsc docelowych dla odcinków dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekazujesz identyfikatory miejsc, interfejs API zwraca limit prędkości dla odcinka drogi reprezentowanego przez dany identyfikator miejsca. Interfejs API nie stosuje żadnych ograniczeń drogowych do podanych identyfikatorów miejsc.

W tym przykładzie żądamy informacji o ograniczeniach prędkości na niektórych odcinkach drogi, które przebiegają przez 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ę połączeń z usługą Limit prędkości, zalecamy próbkowanie lokalizacji zasobów w odstępach 5–15 minut (dokładna wartość zależy od prędkości przemieszczania się zasobu). Jeśli zasób jest nieruchomy, wystarczy próbka z jednego miejsca (nie trzeba wykonywać wielu wywołań).

Aby zminimalizować ogólne opóźnienie, zalecamy wywołanie usługi Limit prędkości po zgromadzeniu pewnych danych, a nie wywoływanie interfejsu API za każdym razem, gdy otrzymasz lokalizację zasobu mobilnego.

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

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

W tym przykładzie do zilustrowania koncepcji wykorzystano most Vasco da Gama, który umożliwia przejazd drogą E90 przez rzekę Tejo. Most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy odcinek drogi w powyższym odpowiedzi jest częścią drogi E90 i ma identyfikator miejsca ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Jeśli w przykładowym żądaniu zastąpisz identyfikator miejsca na drodze identyfikatorem miejsca na moście, w odpowiedzi będą tylko 2 ograniczenia prędkości w tablicy speedLimits, ponieważ identyfikator miejsca na moście nie odnosi się do pojedynczego odcinka drogi. Ponadto jeśli żaden z identyfikatorów miejsc nie dotyczy odcinków dróg, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Gdy wysyłasz żądania dotyczące limitu prędkości za pomocą identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie innego typu miejsca. Identyfikatory miejsc dla poszczególnych odcinków dróg najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads. Każde z tych żądań może zwrócić wiele identyfikatorów miejsc z pojedynczego wywołania.