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

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"
    }
  ]
}

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

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

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

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

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

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

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