Ograniczenia prędkości

Funkcja Roads API zwraca podane ograniczenie prędkości na danym odcinku drogi. W przypadku segmentów dróg z różnymi ograniczeniami prędkości zwracane jest domyślne ograniczenie prędkości dla danego segmentu.

Nie można zagwarantować dokładności danych dotyczących limitu prędkości zwracanych przez Roads API. Podane dane o ograniczeniach prędkości nie są aktualizowane w czasie rzeczywistym i mogą być niedokładne, niekompletne lub nieaktualne. Aby sprawdzić, w których regionach są dostępne dane o ograniczeniach prędkości, zobacz szczegóły zasięgu.

Żądania

Żądanie dotyczące ograniczeń prędkości musi być wysyłane przez HTTPS i ma następującą formę:

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

Używanie parametrów

Parametry wymagane

  • Parametr path lub placeId.
    • 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 współrzędnych geograficznych muszą być rozdzielone znakiem pionowym: „|”. Gdy podasz parametr path, interfejs API najpierw dopasowuje ścieżkę do najprawdopodobniejszej drogi, którą porusza się pojazd (tak jak w przypadku żądania snapToRoads), a potem określa limit prędkości na odpowiednim odcinku drogi. Jeśli nie chcesz, aby interfejs API przyciągał ścieżkę, musisz przekazać parametr placeId w sposób podany poniżej. Ten przykład przedstawia parametr path z 3 parami współrzędnych: 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 innego rodzaju miejsca. W każdej prośbie możesz podać maksymalnie 100 identyfikatorów miejsc. Interfejs API nie wykonuje przycinania do drogi w przypadku podanych identyfikatorów miejsc docelowych. Odpowiedź zawiera limit prędkości dla każdego identyfikatora miejsca podanego w żądaniu. Aby znaleźć odpowiednie identyfikatory miejsc, możesz wysłać żądanie snapToRoads lub nearestRoads, a potem podać je jako dane wejściowe w żądaniu speedLimits. Ten przykład przedstawia parametr placeId z 2 identyfikatorami miejsc:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key – klucz API Twojej aplikacji. Aplikacja musi się identyfikować za każdym razem, gdy wysyła żądanie do interfejsu 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żesz ustawić wartość KPH lub MPH. Domyślna wartość to KPH.

Odpowiedzi

Odpowiedź speedLimits może zawierać te elementy:

  • speedLimits – tablica metadanych dróg. Każdy element zawiera te pola:
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez funkcję Roads API będą odpowiadać segmentom dróg.
    • speedLimit – ograniczenie prędkości na tym odcinku drogi.
    • units – zwraca wartość KPH lub MPH.
  • snappedPoints – tablica punktów przekształconych. Ta tablica jest obecna tylko wtedy, gdy żądanie zawierało parametr path. Każdy punkt zawiera te pola:
    • location – zawiera wartość latitude i longitude.
    • originalIndex – liczba całkowita wskazująca odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być mapowana na wartość zweryfikowaną w odpowiedzi. Te wartości są indeksowane od 0, więc punkt o wartości originalIndex 4 będzie wartością zaokrągloną 5. wartości szerokości/długości geograficznej przekazanej parametrowi path.
    • placeId – unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwrócone przez funkcję Roads API będą odpowiadać segmentom dróg. Wartość placeId może być przekazywana 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ład żądania z użyciem ścieżki

To żądanie zwraca ograniczenie prędkości na każdym odcinku drogi najbliższym 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 ostrzeżenie dotyczące rzadkich punktów w powyższym odpowiedzi. Jeśli chcesz uzyskać limity prędkości na najbliższych odcinkach drogi w dowolnych punktach, musisz wywołać 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 na segmentach dróg. Zalecamy uzyskanie identyfikatorów miejsc docelowych dla odcinków dróg za pomocą żądań snapToRoads lub nearestRoads. Gdy przekażesz identyfikatory miejsc, interfejs API zwróci limit prędkości dla odcinka drogi reprezentowanego przez każdy identyfikator miejsca. Interfejs API nie stosuje żadnych ograniczeń drogowych do podanych identyfikatorów miejsc.

W tym przykładzie żądamy informacji o ograniczeniach prędkości na niektórych odcinkach drogi, które przecinają 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"
    }
  ]
}

Zalecenia dotyczące użytkowania

Aby zminimalizować liczbę połączeń z usługą Limit prędkości, zalecamy próbkowanie lokalizacji zasobów w odstępach 5–15 minut (dokładna wartość zależy od prędkości przemieszczania się zasobu). Jeśli zasób jest nieruchomy, wystarczy próbka z jednego miejsca (nie trzeba wykonywać wielu wywołań).

Aby zminimalizować ogólne opóźnienie, zalecamy wywołanie usługi Limit prędkości po zebraniu danych, a nie wywoływanie interfejsu API za każdym razem, gdy otrzymasz lokalizację zasobu mobilnego.

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

Najczęstszą przyczyną braku informacji speedLimits jest żądanie ograniczenia prędkości miejsca, które nie jest odcinkiem drogi.

W tym przykładzie do zilustrowania koncepcji wykorzystano most Vasco da Gama, który umożliwia przejazd drogą E90 przez rzekę Tejo. Most ma identyfikator miejsca ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Pierwszy odcinek drogi w powyższym komunikacie jest częścią 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 będą tylko 2 ograniczenia prędkości w tablicy speedLimits, ponieważ identyfikator miejsca na moście nie odnosi się do pojedynczego odcinka drogi. Ponadto jeśli żaden z identyfikatorów miejsc nie dotyczy odcinków dróg, odpowiedź nie będzie zawierać żadnych ograniczeń prędkości.

Gdy wysyłasz żądania dotyczące limitu prędkości za pomocą identyfikatorów miejsc, upewnij się, że każdy identyfikator miejsca odnosi się do odcinka drogi, a nie innego typu miejsca. Identyfikatory miejsc dla poszczególnych odcinków dróg najlepiej pobierać za pomocą żądań snapToRoads lub nearestRoads. Każde z tych żądań może zwrócić wiele identyfikatorów miejsc z pojedynczego wywołania.