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