Ograniczenia prędkości

Roads API zwraca opublikowane ograniczenie prędkości dla danego fragmentu drogi. W przypadku fragmentów drogi ze zmiennymi ograniczeniem prędkości zwracane jest domyślne ograniczenie prędkości dla tego segmentu.

Nie można zagwarantować dokładności danych o ograniczeniach prędkości zwracanych przez parametr 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 zasięgu, aby zobaczyć regiony, w których dostępne są dane o ograniczeniach prędkości.

Prośby

Żądanie ograniczenia prędkości należy przesłać za pomocą protokołu HTTPS i mieć postać:

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

Wykorzystanie parametrów

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ą: „|”. Po podaniu parametru path interfejs API najpierw przyciąga ścieżkę do najbardziej prawdopodobnej drogi, którą pokonuje pojazd (tak jak w przypadku żądania snapToRoads), a potem określa ograniczenie prędkości na odpowiednim segmencie drogi. Jeśli nie chcesz, by interfejs API przyciągał ścieżkę, musisz przekazać parametr placeId w sposób opisany poniżej. W tym przykładzie pokazano 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 jeden fragment 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 wykonuje przyciągania dróg na podanych identyfikatorach 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 potem 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 aplikacji. Twoja aplikacja musi identyfikować się za każdym razem, gdy wysyła żądanie do Roads API, umieszczając w każdym żądaniu klucz interfejsu API. Dowiedz się, jak uzyskać klucz.

Parametry opcjonalne

  • units – określa, czy zwrócić ograniczenia prędkości w kilometrach czy milach na godzinę. Można ustawić 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 zwracane przez funkcję Roads API odpowiadają segmentom drogi.
    • speedLimit – ograniczenie prędkości na danym fragmencie drogi.
    • units – zwraca wartość KPH lub MPH.
  • snappedPoints – tablica przyciąganych punktów. Ta tablica występuje tylko wtedy, gdy żądanie zawiera parametr path. Każdy punkt składa się z tych pól:
    • location – zawiera wartości latitude oraz longitude.
    • originalIndex – liczba całkowita wskazująca odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być zmapowana na wartość w odpowiedzi. Te wartości są indeksowane od 0, więc punkt z originalIndex o wartości 4 będzie przyciąganą wartością piątej szerokości/długości geograficznej przekazanej parametrowi path.
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez funkcję Roads API odpowiadają segmentom drogi. Element 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 znaków zawierający ostrzeżenie widoczne dla użytkowników.

Przykładowe żądanie z użyciem ścieżki

To żądanie pobiera limit prędkości dla każdego segmentu drogi zbliżającego się do podanych par 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 ostrzegawczy dotyczący rozproszenia punktów w powyższej odpowiedzi. Jeśli prosisz o ograniczenia prędkości dla najbliższych fragmentów drogi w dowolnych punktach, musisz zamiast tego 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 długości i szerokości geograficznej, możesz przekazywać identyfikatory miejsc dla fragmentów drogi. Zalecamy uzyskanie identyfikatorów miejsc dla segmentów drogi za pomocą żądań snapToRoads lub nearestRoads. Gdy przekazujesz identyfikatory miejsc, interfejs API zwraca limit prędkości na segmencie drogi reprezentowanym przez poszczególne identyfikatory miejsc. Interfejs API nie stosuje żadnych przypinania dróg do podanych identyfikatorów miejsc.

Poniższy przykład dotyczy ograniczenia prędkości na niektórych odcinkach dróg przechodzących 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 wykorzystania

Aby zminimalizować liczbę wywołań usługi ograniczenia prędkości, zalecamy próbkowanie lokalizacji zasobów co 5–15 minut (dokładna wartość zależy od prędkości, z jaką zasób się przemieszcza). Jeśli zasób jest nieruchomy, wystarczy podać jedną przykładową lokalizację (nie trzeba wykonywać wielu wywołań).

Aby zminimalizować ogólny czas oczekiwania, zalecamy wywoływanie usługi ograniczenia prędkości po zgromadzeniu pewnej ilości danych, a nie po otrzymaniu danych o lokalizacji zasobu mobilnego.

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

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

Powyższy przykład pokazuje most Vasco da Gama do zilustrowania koncepcji, ponieważ jest on podtrzymywany przez drogę E90 nad rzeką Tejo. Sam most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy segment drogi w powyższej odpowiedzi to część 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 w tablicy speedLimits pojawią się tylko 2 ograniczenia prędkości, ponieważ identyfikator miejsca na moście nie odnosi się do konkretnego segmentu drogi. Co więcej, jeśli żaden z identyfikatorów miejsc nie odnosi się do fragmentu drogi, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Zgłaszając prośby o ograniczenie prędkości z wykorzystaniem 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 się za pomocą żądań snapToRoads lub nearestRoads, które mogą zwracać wiele identyfikatorów miejsc w ramach pojedynczego wywołania.