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

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 , каждый из которых может возвращать несколько идентификаторов мест за один вызов.