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

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=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU

  • 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 будет соответствовать зафиксированному значению 5-й широты/долготы, переданной в параметр 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"
    }
  ]
}

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

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

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

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

Наиболее распространенная причина пропуска speedLimits — запрос ограничения скорости для участка, который не является частью дороги.

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

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

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

Roads API возвращает максимально допустимую скорость движения только для легковых автомобилей.