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

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 возвращает максимальное ограничение скорости только для автомобилей.