Ograniczenia prędkości

Roads API zwraca podany limit prędkości dla danego segmentu drogi. W przypadku segmentów drogi ze zmiennymi ograniczeniami prędkości zwracany jest domyślny limit prędkości.

Nie można zagwarantować dokładności danych o ograniczeniu prędkości zwracanych przez interfejs Roads API. Podane limity prędkości nie są aktualizowane w czasie rzeczywistym i mogą być szacowane, niedokładne, niepełne lub nieaktualne. Sprawdź szczegóły zasięgu, aby zobaczyć regiony, w których dostępne są dane o ograniczeniach prędkości.

Żądania

Żądanie ograniczenia prędkości musi być wysyłane przez HTTPS i mieć taką formę:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

Wykorzystanie parametrów

Parametry wymagane

  • Parametr path lub placeId.
    • path – lista maksymalnie 100 pól szerokości i długości geograficznej reprezentujących ścieżkę. Długość i szerokość geograficzna muszą być rozdzielone przecinkami. Pary szerokości i długości geograficznej muszą być rozdzielone pionową kreską „|”. Gdy podajesz parametr path, interfejs API najpierw pobiera ścieżkę do drogi, którą pokonuje pojazd (tak jak w przypadku żądania snapToRoads), a następnie ustala limit prędkości dla odpowiedniego segmentu drogi. Jeśli nie chcesz, aby interfejs API rejestrował ścieżkę, musisz przekazać parametr placeId w sposób opisany poniżej. Poniższy przykład pokazuje parametr path z 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 segment drogi. Upewnij się, że każdy identyfikator miejsca odnosi się do segmentu drogi, a nie do innego typu miejsca. W każdym żądaniu możesz przekazać maksymalnie 100 identyfikatorów miejsc. Interfejs API nie sprawdza się przy dostarczaniu identyfikatorów miejsc. Odpowiedź zawiera ograniczenie prędkości dla każdego identyfikatora miejsca w żądaniu. Możesz wysłać żądanie snapToRoads lub nearestRoads, aby znaleźć odpowiednie identyfikatory miejsc, a następnie podać je jako dane wejściowe do żądania speedLimits. Poniższy przykład pokazuje parametr placeId z 2 identyfikatorami miejsc: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key – klucz interfejsu API aplikacji. Aplikacja musi identyfikować się za każdym razem, gdy wysyła żądanie do komponentu Roads API, do każdego żądania dołączając klucz interfejsu API. Dowiedz się, jak uzyskać klucz.

Parametry opcjonalne

  • units – określa, czy obowiązują ograniczenia prędkości w kilometrach lub milach na godzinę. Wartość parametru możesz ustawić na KPH lub MPH. Domyślna wartość to KPH.

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 funkcję Roads API będą odpowiadać segmentom drogi.
    • speedLimit – ograniczenie prędkości w danym segmencie drogi.
    • units – zwraca albo KPH, albo MPH.
  • snappedPoints – tablica przyciągniętych punktów. Ta tablica występuje tylko wtedy, gdy żądanie zawiera parametr path. Każdy punkt składa się z następujących pól:
    • location – zawiera wartości latitude i longitude.
    • originalIndex – liczba całkowita wskazująca odpowiadającą jej wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być zmapowana na udzieloną wartość w odpowiedzi. Te wartości są indeksowane z 0, więc punkt z originalIndex o wartości 4 będzie przypiętą wartością 5. szerokości i długości geograficznej przekazanej do parametru path.
    • placeId – unikalny identyfikator miejsca, Wszystkie identyfikatory miejsc zwracane przez funkcję Roads API będą odpowiadać segmentom drogi. Aby określić limit prędkości na danym fragmencie drogi, obiekt placeId może być przekazywany w żądaniu ograniczenia prędkości.
  • warning_message – ciąg zawierający ostrzeżenie widoczne dla użytkowników;

Przykładowe żądanie ze ścieżką

Żądanie to otrzymuje informację o limicie prędkości dla każdego segmentu drogi znajdującego się najbliżej określonych par szerokości i długości geograficznej na ścieżce przekraczającej most Vasco da Gama w Lizbonie.

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 komunikat ostrzegawczy dotyczący niewielu punktów w odpowiedzi powyżej. Jeśli zgłaszasz żądanie ograniczenia prędkości w najbliższych fragmentach drogi w dowolnym miejscu, musisz wywołać speedLimits za pomocą identyfikatorów miejsc pobranych z punktu końcowego nearestRoads.

Przykładowe żądanie z wykorzystaniem identyfikatorów miejsc

Zamiast używać par szerokości i długości geograficznej, możesz przekazywać identyfikatory miejsc segmentów drogi. Zalecamy uzyskiwanie identyfikatorów miejsc dla segmentów drogi przy użyciu żądań snapToRoads lub nearestRoads. Po przekazaniu identyfikatorów miejsc interfejs API zwraca ograniczenie prędkości dla segmentu drogi reprezentowanego przez każdy identyfikator miejsca. Do przekazywanych identyfikatorów miejsc nie jest stosowany żaden interfejs API do ustalania lokalizacji.

W poniższym przykładzie zażądano ograniczenia prędkości w niektórych fragmentach drogi łączących most Vasco da Gama w Lizbonie.

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 wykorzystania

Aby zminimalizować liczbę wywołań funkcji Ograniczenie prędkości, zalecamy próbkowanie lokalizacji zasobów w 5–15-minutowych przedziałach (dokładna wartość zależy od szybkości poruszania się zasobu). Jeśli zasób ma charakter statyczny, wystarczy jedna próbka lokalizacji (nie ma potrzeby wykonywania wielu wywołań).

Aby zminimalizować ogólny czas oczekiwania, zalecamy wywoływanie usługi Speed Limit po zebraniu danych, a nie wywoływanie interfejsu API po każdym otrzymaniu lokalizacji zasobu mobilnego.

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

Najczęstszą przyczyną braku wartości speedLimits jest prośba o ograniczenie prędkości w miejscu, które nie jest fragmentem drogi.

W powyższym przykładzie ilustruje koncepcję mostu Vasco da Gama. Most obsługuje drogę E90 nad Rio Tejo. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy fragment 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 pojawią się tylko 2 ograniczenia prędkości, ponieważ identyfikator miejsca mostu nie odnosi się do pojedynczego segmentu drogi. Jeśli żaden z identyfikatorów miejsc nie dotyczy segmentów drogi, odpowiedź nie będzie zawierać żadnych limitów prędkości.

Przesyłając żądania ograniczenia prędkości za pomocą identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do segmentu drogi, a nie do innego typu miejsca. Identyfikatory miejsc dla poszczególnych segmentów drogi najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads. Każde z nich może zwracać wiele identyfikatorów miejsc z jednego wywołania.