Ograniczenia prędkości

Roads API zwraca ograniczenia prędkości na danym fragmencie drogi. W przypadku fragmentów drogi ze zmiennymi ograniczeniami prędkości zwracane jest domyślne ograniczenie prędkości dla tego fragmentu.

Nie można zagwarantować dokładności danych o ograniczeniach prędkości zwracanych przez interfejs Roads API. Dane o ograniczeniach prędkości nie są podawane w czasie rzeczywistym i mogą być szacunkowe, niedokładne, niepełne lub nieaktualne. Sprawdź szczegóły pokrycia, aby sprawdzić, w których regionach dostępne są dane o ograniczeniach prędkości.

Żądania

Żądanie ograniczenia prędkości musi być wysyłane przez HTTPS i ma taki format:

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

Wykorzystanie parametru

Parametry wymagane

  • Parametr path lub placeId.
    • path – lista maksymalnie 100 par 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 podasz parametr path, interfejs API najpierw przyciągnie ścieżkę do najbardziej prawdopodobnej drogi, którą przejeżdża pojazd (tak jak w przypadku żądania snapToRoads), a następnie określa ograniczenie prędkości na danym fragmencie drogi. Jeśli nie chcesz, aby interfejs API przyciągał ścieżkę, musisz przekazać parametr placeId w sposób opisany poniżej. Przykład poniżej pokazuje parametr path z trzema 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 fragmentu drogi, a nie do innego typu miejsca. W każdym żądaniu możesz przekazać maksymalnie 100 identyfikatorów miejsc. Interfejs API nie przyciąga dróg w podanych identyfikatorach miejsc. Odpowiedź zawiera informację o ograniczeniu szybkości w przypadku każdego identyfikatora miejsca w żądaniu. Możesz wysłać prośbę snapToRoads lub nearestRoads, aby znaleźć odpowiednie identyfikatory miejsc, a następnie podać je jako dane wejściowe w żądaniu speedLimits. Przykład poniżej pokazuje parametr placeId z 2 identyfikatorami miejsc: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key – klucz interfejsu API Twojej aplikacji. Aplikacja musi identyfikować się za każdym razem, gdy wysyła żądanie do Roads API, dodając do każdego żądania klucz interfejsu API. Dowiedz się, jak uzyskać klucz.

Parametry opcjonalne

  • units – określa, czy należy sprawdzać ograniczenia prędkości w kilometrach lub milach na godzinę. Może mieć wartość KPH lub MPH. Domyślna wartość to KPH.

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 zwrócone przez interfejs Roads API odpowiadają segmentom drogi.
    • speedLimit – ograniczenie prędkości na danym fragmencie drogi.
    • units – zwraca KPH lub MPH.
  • snappedPoints – tablica przyciągniętych punktów. Ta tablica występuje tylko wtedy, gdy żądanie zawierało parametr path. Każdy punkt składa się z tych pól:
    • location – zawiera wartości latitude i longitude.
    • originalIndex – liczba całkowita, która wskazuje odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być zmapowana na wartość dodaną w odpowiedzi. Te wartości są indeksowane od 0, więc punkt z atrybutem originalIndex o wartości 4 będzie przyciąganą do piątej szerokości i długości geograficznej piątej wartości przekazywanej do parametru path.
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez interfejs Roads API odpowiadają segmentom drogi. placeId można przekazać w żądaniu ograniczenia prędkości, aby określić ograniczenie prędkości na danym fragmencie 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 na każdym odcinku drogi najbliższym podanym parom 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 komunikat z ostrzeżeniem dotyczącym rzadszego zapotrzebowania na punkty w powyższej odpowiedzi. Jeśli wysyłasz prośbę o ograniczenie prędkości na najbliższym odcinku drogi, wywołaj funkcję speedLimits z identyfikatorami miejsc pobranymi z punktu końcowego nearestRoads.

Przykładowe żądanie z użyciem identyfikatorów miejsc

Zamiast używać par szerokości i długości geograficznej, możesz przekazywać identyfikatory miejsc segmentów dróg. Zalecamy uzyskanie identyfikatorów miejsc dla fragmentów drogi za pomocą żądań snapToRoads lub nearestRoads. Po przekazaniu identyfikatorów miejsc interfejs API zwraca ograniczenie prędkości na danym fragmencie drogi reprezentowanym przez identyfikator miejsca. Interfejs API nie stosuje żadnych elementów przyciągających do podanych identyfikatorów miejsc.

W przykładzie poniżej podajemy ograniczenia prędkości na niektórych odcinkach drogi, które przechodzą 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"
    }
  ]
}

Rekomendacje dotyczące użycia

Aby zminimalizować liczbę wywołań usługi Ograniczenie szybkości, zalecamy próbkowanie lokalizacji zasobów w odstępach 5–15 minut (dokładna wartość zależy od szybkości przesyłania zasobu). Jeśli zasób jest statyczny, wystarczy jedna próbka lokalizacji (nie trzeba wykonywać kilku wywołań).

Aby zminimalizować ogólny czas oczekiwania, zalecamy wywoływanie usługi limitu szybkości po zebraniu danych zamiast wywoływania interfejsu API za każdym razem, gdy zostanie odebrany zasób mobilny.

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

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

W przykładzie powyżej pokazano koncepcje mostu Vasco da Gama, a most obsługuje drogę E90 nad rzeką 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 na drodze identyfikatorem miejsca mostu, w odpowiedzi w tablicy speedLimits pojawią się tylko 2 ograniczenia prędkości, ponieważ identyfikator miejsca mostu nie odnosi się do konkretnego fragmentu drogi. Jeśli żaden z identyfikatorów miejsc nie odnosi się do fragmentu drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Gdy przesyłasz prośbę o ograniczenie prędkości za pomocą identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do fragmentu drogi, a nie do innego typu miejsca. Identyfikatory miejsc dla poszczególnych segmentów drogi najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads, które mogą zwracać wiele identyfikatorów miejsc z jednego wywołania.