Interfejs 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 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 Regiony, w których 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_KEYUżycie parametru
Parametry wymagane
Parametr
pathlubplaceId.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 szerokość/długość geograficzna muszą być rozdzielone znakiem potoku „|”. Gdy podasz parametrpath, interfejs API najpierw dopasuje ścieżkę do najbardziej prawdopodobnej drogi, którą przejechał pojazd (tak jak w przypadkusnapToRoadsżądania), a następnie określi ograniczenie prędkości dla odpowiedniego odcinka drogi. Jeśli nie chcesz, aby interfejs API dopasowywał ścieżkę, musisz przekazać parametrplaceIdzgodnie z opisem poniżej. Poniższy przykład przedstawia parametrpathz 3 parami szerokość/długość geograficzna:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.placeId– identyfikator(-y) miejsca reprezentujący 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 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
snapToRoadslubnearestRoads, a następnie podać je jako dane wejściowe do żądaniaspeedLimits. Poniższy przykład przedstawia parametrplaceIdz 2 identyfikatorami miejsc:placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key– klucz interfejsu API Twojej aplikacji. Twoja aplikacja musi identyfikować się 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śćKPHlubMPH. Domyślna wartość toKPH.
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ć odcinkom dróg.speedLimit– ograniczenie prędkości na danym odcinku drogi.units– zwraca wartośćKPHlubMPH.
snappedPoints– tablica dopasowanych punktów. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametrpath. Każdy punkt składa się z tych pól:location– zawiera wartościlatitudeilongitude.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 od0, więc punkt z wartościąoriginalIndexrówną4będzie dopasowaną wartością 5. szerokości i długości geograficznej przekazanej do parametrupath.placeId– unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez Roads API będą odpowiadać odcinkom dróg. ParametrplaceIdmożna przekazać w żądaniu ograniczeń prędkości, aby określić ograniczenie prędkości na danym odcinku 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 odcinka drogi znajdującego się najbliżej określonych par szerokość/długość geograficzna na ścieżce przecinającej most Vasco da Gama 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_KEYOdpowiedź
{
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 rzadkiego rozmieszczenia punktów w powyższej odpowiedzi. Jeśli żądasz ograniczeń prędkości dla najbliższych odcinków dróg w dowolnych punktach, musisz wywołać metodę speedLimits z identyfikatorami miejsc pobranymi z punktu końcowego nearestRoads.
Przykładowe żądanie z użyciem identyfikatorów miejsc
Zamiast używać par szerokość/długość geograficzna, możesz przekazać identyfikatory miejsc odcinków dróg. Zalecamy uzyskanie identyfikatorów miejsc odcinków dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekażesz identyfikatory miejsc, interfejs API zwróci ograniczenie prędkości dla odcinka drogi reprezentowanego przez każdy identyfikator miejsca. Interfejs API nie dopasowuje do drogi podanych identyfikatorów miejsc.
Poniższy przykład przedstawia żądanie ograniczeń prędkości dla niektórych odcinków dróg przecinających most Vasco da Gama w Lizbonie w Portugalii.
Żądanie
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEYOdpowiedź
{
"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 w miejscu, które nie jest odcinkiem drogi.
W powyższym przykładzie używamy mostu Vasco da Gama, aby zilustrować koncepcje. Most ten obsługuje drogę E90 przecinającą rzekę Tag. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy odcinek 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 odcinka drogi. Ponadto, jeśli żaden z identyfikatorów miejsc nie dotyczy odcinka drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.
W przypadku żądań ograniczeń prędkości z użyciem identyfikatorów miejsc upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie do innego typu miejsca. Identyfikatory miejsc poszczególnych odcinkó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 na odcinku drogi obowiązują oddzielne ograniczenia prędkości dla samochodów osobowych i ciężarowych?
Interfejs Roads API zwraca tylko maksymalne opublikowane ograniczenie prędkości dla samochodów osobowych.