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, zapoznaj się z szczegółami 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 pionowej kreski: „|”. 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 limit 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 rodzaju miejsca. W ramach każdej prośby 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ć żą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
– 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
lubMPH
.
snappedPoints
– tablica punktów przyciętej ścieżki. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametrpath
. Każdy punkt zawiera te pola: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ść zapiętą w odpowiedzi. Te wartości są indeksowane od0
, więc punkt o wartościoriginalIndex
4
będzie wartością zaokrągloną 5. wartości szerokości/długości geograficznej przekazanej parametrowipath
.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 pobieranie próbek 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 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.