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=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
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, будет привязанным значением пятой широты/долготы, переданной в параметр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 минут (точное значение зависит от скорости движения объекта). Если тот не движется, данных об одном местонахождении будет достаточно (не нужно делать несколько вызовов).
Для минимизации общей задержки рекомендуем сначала накопить данные, а затем вызывать сервис Speed Limit. Это эффективнее, чем вызывать API каждый раз при получении геоданных движущегося объекта.
Почему некоторые или все ограничения скорости отсутствуют?
Чаще всего поле speedLimits отсутствует, если запрашивается ограничение скорости для места, которое не является сегментом дороги.
В примере выше используется мост Васко да Гама, по которому проходит дорога E90 через реку Тежу. Идентификатор места для самого моста – ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Первый сегмент дороги в ответе выше является частью дороги E90 и имеет идентификатор места ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Если в примере запроса заменить идентификатор места дороги на идентификатор места моста, то в ответе в массиве speedLimits будет только два ограничения скорости, поскольку идентификатор места моста не относится к отдельному сегменту дороги. Кроме того, если ни один из идентификаторов мест не относится к сегментам дорог, то в ответе не будет ограничений скорости.
При отправке запросов на получение информации об ограничении скорости с использованием идентификаторов мест убедитесь, что каждый идентификатор относится к сегменту дороги, а не к месту другого типа. Идентификаторы мест для отдельных сегментов дорог лучше всего получать с помощью запросов snapToRoads или nearestRoads, каждый из которых может возвращать несколько идентификаторов мест за один вызов.
Что делать, если на сегменте дороги установлены разные ограничения скорости для легковых и грузовых автомобилей?
Roads API возвращает максимальное ограничение скорости только для автомобилей.