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