Roads API zwraca ograniczenie prędkości dla danych segmentów drogi. W przypadku segmentów dróg ze zmiennymi ograniczeniami prędkości zwracane jest maksymalne ograniczenie prędkości dla samochodów na tym segmencie.
Nie możemy zagwarantować dokładności danych o ograniczeniach prędkości zwracanych przez Roads API. Dane o ograniczeniach prędkości nie są podawane w czasie rzeczywistym i mogą być szacunkowe, niedokładne, niekompletne lub nieaktualne. Aby sprawdzić, w których regionach są dostępne dane o ograniczeniach prędkości, zapoznaj się ze szczegółami dotyczącymi zasięgu.
Żądania
Żądania dotyczące ograniczeń prędkości wysyłaj za pomocą protokołu HTTPS w następującej formie:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYUżycie parametrów
Parametry wymagane
Parametr
pathlubplaceId.path– lista zawierająca maksymalnie 100 par szerokości i długości geograficznej, które reprezentują ścieżkę. Wartości szerokości i długości geograficznej muszą być rozdzielone przecinkami. Pary szerokości i długości geograficznej muszą być rozdzielone znakiem kreski pionowej: „|”. Gdy podasz parametrpath, interfejs API najpierw przyciągnie ścieżkę do najbardziej prawdopodobnej drogi, którą porusza się pojazd (tak jak w przypadku żądaniasnapToRoads), a następnie określi ograniczenie prędkości na danym odcinku drogi. Jeśli nie chcesz, aby interfejs API przyciągał ścieżkę, musisz przekazać parametrplaceId, jak wyjaśniono poniżej. Ten przykład pokazuje parametrpathz 3 parami szerokości i długości geograficznej: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 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 wykonuje przyciągania do drogi w przypadku podanych identyfikatorów miejsc. Możesz wysłać żądanie
snapToRoadslubnearestRoads, aby znaleźć odpowiednie identyfikatory miejsc, a następnie podać je jako dane wejściowe w żądaniuspeedLimits. Ten przykład pokazuje parametrplaceIdz 2 identyfikatorami miejsc:placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key– klucz interfejsu API aplikacji. Twoja 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ć podawane w kilometrach, czy w milach na godzinę. Możesz ustawićKPHlubMPH. Domyślna wartość toKPH.
Odpowiedzi
Odpowiedź speedLimits może zawierać 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ć segmentom dróg.speedLimit– ograniczenie prędkości na danym odcinku drogi.units– zwraca wartośćKPHlubMPH.
snappedPoints– tablica przyciągniętych 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, która wskazuje odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być mapowana na wartość przyciągniętą w odpowiedzi. Te wartości są indeksowane od0, więc punkt zoriginalIndexo wartości4będzie przyciągniętą wartością piątej szerokości/długości geograficznej przekazanej do parametrupath.placeId– unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez Roads API będą odpowiadać segmentom dróg. ParametrplaceIdmoż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 określonym parom szerokości i długości geograficznej 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 rozproszenia punktów w powyższej odpowiedzi. Jeśli prosisz o ograniczenia prędkości dla najbliższych segmentów drogi 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 par szerokości i długości geograficznej możesz przekazywać identyfikatory miejsc segmentów drogi. Zalecamy uzyskanie identyfikatorów miejsc dla odcinków dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekazujesz identyfikatory miejsc, interfejs API zwraca ograniczenie prędkości dla segmentu drogi reprezentowanego przez każdy identyfikator miejsca. Interfejs API nie stosuje przyciągania do drogi w przypadku podanych identyfikatorów miejsc.
Poniższy przykład żąda ograniczeń prędkości dla niektórych odcinków drogi, które przecinają 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 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 zasób jest nieruchomy, wystarczy jedna próbka lokalizacji (nie ma potrzeby wykonywania wielu wywołań).
Aby zminimalizować ogólne opóźnienie, zalecamy wywoływanie usługi Speed Limit po zgromadzeniu pewnej ilości danych, a nie przy każdym odebraniu lokalizacji zasobu mobilnego.
Dlaczego brakuje niektórych lub wszystkich ograniczeń prędkości?
Najczęstszą przyczyną braku speedLimits jest żądanie ograniczenia prędkości dla miejsca, które nie jest segmentem drogi.
W powyższym przykładzie do zilustrowania koncepcji użyto mostu Vasco da Gama.
Most ten obsługuje drogę E90, która przecina rzekę Tag. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy odcinek drogi w odpowiedzi powyżej 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. Jeśli żaden z identyfikatorów miejsc nie dotyczy odcinków dróg, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.
Wysyłając żądania dotyczące 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, które mogą zwracać wiele identyfikatorów miejsc w jednym wywołaniu.
Co zrobić, jeśli na danym odcinku drogi obowiązują różne ograniczenia prędkości dla samochodów osobowych i ciężarowych?
Roads API zwraca maksymalne ograniczenie prędkości tylko dla samochodów.