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