Ограничения скорости

Roads API возвращает ограничение скорости для заданных сегментов дороги. Если на участке дороги ограничение скорости меняется, возвращается максимальное ограничение скорости для автомобилей на этом участке.

Точность данных об ограничении скорости, возвращаемых Roads API, не гарантируется. Данные об ограничении скорости не обновляются в реальном времени и могут быть приблизительными, неточными, неполными или устаревшими. Подробнее о том, в каких регионах доступны данные об ограничениях скорости…

Запросы

Отправьте запрос на получение ограничений скорости по протоколу HTTPS в следующем формате:

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

Использование параметров

Обязательные параметры

  • Параметр path или placeId.

    • path – список, содержащий до 100 пар значений широты и долготы, которые представляют маршрут. Значения широты и долготы должны быть разделены запятыми. Пары широты и долготы должны быть разделены вертикальной чертой ("|"). Если вы указываете параметр path, API сначала привязывает маршрут к наиболее вероятной дороге, по которой двигалось транспортное средство (как и в случае с запросом snapToRoads), а затем определяет ограничение скорости для соответствующего сегмента дороги. Если вы не хотите, чтобы API привязывал маршрут, передайте параметр placeId, как описано ниже. В примере ниже параметр path содержит три пары значений широты и долготы: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
    • placeId – идентификаторы мест, представляющие один или несколько сегментов дороги. Убедитесь, что каждый идентификатор места относится к сегменту дороги, а не к другому типу места. В каждом запросе можно передать до 100 идентификаторов мест. Ответ содержит ограничение скорости для каждого идентификатора места в запросе.

      API не выполняет привязку к дорогам для предоставленных идентификаторов мест. Вы можете отправить запрос snapToRoads или nearestRoads, чтобы найти нужные идентификаторы мест, а затем указать их в запросе speedLimits. В примере ниже показан параметр placeId с двумя идентификаторами мест: placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y

  • key – ключ API вашего приложения. Приложение должно идентифицировать себя каждый раз, когда отправляет запрос в Roads API, включая ключ API в каждый запрос. Подробнее о том, как получить ключ…

Необязательные параметры

  • units – указывает, в каких единицах измерения возвращать ограничения скорости (в километрах или милях в час). Допустимые значения: KPH или MPH. Значение по умолчанию – KPH.

Ответы

В ответе speedLimits могут присутствовать следующие элементы:

  • speedLimits – массив метаданных о дорогах. Каждый элемент состоит из следующих полей:
    • placeId – уникальный идентификатор места. Все идентификаторы мест, возвращаемые Roads API, будут соответствовать сегментам дорог.
    • speedLimit – ограничение скорости на этом участке дороги.
    • units – возвращает KPH или MPH.
  • snappedPoints – массив привязанных точек. Этот массив присутствует, только если запрос содержал параметр path. Каждая точка состоит из следующих полей:
    • location – содержит значения latitude и longitude.
    • originalIndex – целое число, которое указывает на соответствующее значение в исходном запросе. Каждое значение в запросе должно сопоставляться со значением в ответе. Индексация этих значений начинается с 0, поэтому точка с originalIndex, равным 4, будет привязанным значением пятой широты/долготы, переданной в параметр path.
    • placeId – уникальный идентификатор места. Все идентификаторы мест, возвращаемые Roads API, будут соответствовать сегментам дорог. Значение placeId можно передать в запросе ограничения скорости, чтобы определить ограничение скорости на этом сегменте дороги.
  • warning_message – строка, содержащая предупреждение, которое видит пользователь.

Пример запроса с использованием пути

Этот запрос возвращает ограничение скорости для каждого сегмента дороги, ближайшего к указанным парам широты и долготы на пути, пересекающем мост Васко да Гама в Лиссабоне (Португалия).

Запрос

https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY

Ответ

{
  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."
}

Обратите внимание на предупреждение о разреженности точек в ответе выше. Если вы запрашиваете ограничения скорости для ближайших сегментов дорог в произвольных точках, вам нужно вызвать speedLimits с идентификаторами мест, полученными из конечной точки nearestRoads.

Пример запроса с использованием идентификаторов мест

Вместо пар широты и долготы можно передавать идентификаторы мест для сегментов дорог. Рекомендуем получать идентификаторы мест для сегментов дорог с помощью запросов snapToRoads или nearestRoads. Если вы передаете идентификаторы мест, API возвращает ограничение скорости для участка дороги, представленного каждым идентификатором места. API не применяет привязку к дороге к предоставленным идентификаторам мест.

В следующем примере запрашиваются ограничения скорости для некоторых сегментов дороги, пересекающих мост Васко да Гама в Лиссабоне (Португалия).

Запрос

https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY

Ответ

{
  "speedLimits": [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ]
}

Рекомендации по использованию

Чтобы сократить количество запросов к сервису Speed Limit, рекомендуем установить для определения местонахождений объектов временной интервал в 5–15 минут (точное значение зависит от скорости движения объекта). Если тот не движется, данных об одном местонахождении будет достаточно (не нужно делать несколько вызовов).

Для минимизации общей задержки рекомендуем сначала накопить данные, а затем вызывать сервис Speed Limit. Это эффективнее, чем вызывать API каждый раз при получении геоданных движущегося объекта.

Почему некоторые или все ограничения скорости отсутствуют?

Чаще всего поле speedLimits отсутствует, если запрашивается ограничение скорости для места, которое не является сегментом дороги.

В примере выше используется мост Васко да Гама, по которому проходит дорога E90 через реку Тежу. Идентификатор места для самого моста – ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Первый сегмент дороги в ответе выше является частью дороги E90 и имеет идентификатор места ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Если в примере запроса заменить идентификатор места дороги на идентификатор места моста, то в ответе в массиве speedLimits будет только два ограничения скорости, поскольку идентификатор места моста не относится к отдельному сегменту дороги. Кроме того, если ни один из идентификаторов мест не относится к сегментам дорог, то в ответе не будет ограничений скорости.

При отправке запросов на получение информации об ограничении скорости с использованием идентификаторов мест убедитесь, что каждый идентификатор относится к сегменту дороги, а не к месту другого типа. Идентификаторы мест для отдельных сегментов дорог лучше всего получать с помощью запросов snapToRoads или nearestRoads, каждый из которых может возвращать несколько идентификаторов мест за один вызов.

Что делать, если на сегменте дороги установлены разные ограничения скорости для легковых и грузовых автомобилей?

Roads API возвращает максимальное ограничение скорости только для автомобилей.