Funkcja Roads API zwraca podane ograniczenie prędkości na danym odcinku drogi. W przypadku segmentów dróg o zmiennych ograniczeniach 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
lubplaceId
.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 parametrpath
, interfejs API najpierw dopasowuje ścieżkę do najprawdopodobniejszej drogi, którą porusza się pojazd (tak jak w przypadku żądaniasnapToRoads
), a potem określa ograniczenie prędkości na odpowiednim odcinku drogi. Jeśli nie chcesz, aby interfejs API przycinał ścieżkę, musisz przekazać parametrplaceId
w sposób podany poniżej. Ten przykład przedstawia parametrpath
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 typu 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 docelowych. Odpowiedź zawiera limit prędkości dla każdego identyfikatora miejsca podanego w żądaniu. Aby znaleźć odpowiednie identyfikatory miejsc, możesz wysłać żądaniesnapToRoads
lubnearestRoads
, a potem podać je jako dane wejściowe w żądaniuspeedLimits
. Ten przykład przedstawia parametrplaceId
z 2 identyfikatorami miejsc:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
– klucz API Twojej 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
lubMPH
. Domyślna wartość toKPH
.
Odpowiedzi
W odpowiedzi speedLimits
mogą występować te elementy:
speedLimits
– tablica metadanych dróg. Każdy element zawiera te pola:placeId
– unikalny 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
lubMPH
.
snappedPoints
– tablica punktów przyciętej ścieżki. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametrpath
. Każdy punkt składa się z tych pól:location
– zawiera wartośćlatitude
ilongitude
.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 od0
, więc punkt o wartościoriginalIndex
4
będzie wartością zaokrągloną 5. wartości współrzędnych geograficznych (szerokości i długości geograficznej) przekazanych parametrowipath
.placeId
– unikalny 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 dla każdego odcinka drogi najbliższego podanych par szerokości i długości geograficznej na ś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 odpowiedzi. 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 przekażesz identyfikatory miejsc, interfejs API zwróci limit prędkości dla odcinka drogi reprezentowanego przez każdy 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 zebraniu 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 komunikacie 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, używając 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.