Описание
/v1/elevation - точка вызова сервиса, который предоставляет возможность получения данных о высоте над уровнем моря. Сервис позволяет запрашивать высоту для:
- отдельной точки на карте;
- набора не связанных между собой точек;
- маршрута - последовательности связанных между собой точек (для этого используется поле resample_distance в json'е запроса).
Запрос
Запросы к API возможны с помощью HTTP POST.
Обязательные параметры POST-запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
api_key |
hex-string |
|
||
json |
string |
Тело POST-запроса с параметрами, необходимыми для получения интересующих данных о высотах. |
JSON запроса
JSON передается в теле запроса.
Обязательные поля
Поле
|
Формат
|
Описание
|
Пример json'а с данным полем
|
Пример ответа сервиса
| |||||
---|---|---|---|---|---|---|---|---|---|
locations |
В данное поле можно передавать координаты в одном из 3х допустимых форматов:
|
Перечисление одной и более координат в любом из 3х допустимых форматов. Для заданного поля locations сервис возвращает набор высот в метрах. Количество высот равно количеству точек в locations. |
|
|
Необязательные поля
Поле
|
Формат
|
Описание
|
Пример json'а с данным полем
|
Пример ответа сервиса
| ||
---|---|---|---|---|---|---|
range | Boolean |
Флаг, при установке которого в true вместо одномерного массива "height" сервис возвращает двумерный массив "range_height", в котором содержатся пары значений. Первое - расстояние в метрах от предыдущей точки locations; второе - высота. Флаг удобен для построения профиля высот, а также для расчета уклона для подъемов и спусков. Значение по умолчанию: false. |
|
|
||
resample_distance | Integer |
Значение в метрах для указания расстояния между точками, для которых необходимо получить высоты. Исходный маршрут из последовательных точек разбивается на отрезки длиной resample_distance. Сервис возвращает сформированные таким образом точки и значения высот для этих точек. Пример использования: есть маршрут пользователя, необходимо построить для него профиль высот с высотами на расстоянии 50 метров друг от друга. Значение по умолчанию: поле отсутствует, то есть сервис возвращает по одному значению высоты на одну указанную координату. |
|
|
||
height_precision | Integer |
Количество знаков после запятой в значении высоты. Дробные значения для высоты нужны, например, для большей точности и плавности в профиле высот. Возможные значения: 0-2. Значение по умолчанию: 0 (высота - целое число). |
|
|
Ответ
Если для какой-то точки не удается определить высоту, вместо значения в метрах возвращается null.
Имя поля
|
Формат
|
Описание
|
Пример
| |||
---|---|---|---|---|---|---|
locations | Формат поля ответа совпадает с форматом, выбранным для запроса. | В данном поле возвращаются координаты, для которых была запрошена высота. |
Формат "список координат":
Формат "закодированная строка":
Формат "строка":
|
|||
height | Массив высот. |
В ответе присутствует это поле, если в запросе не задано "range":true. Если в запросе не указано поле "resample_distance", количество значений в массиве "height" совпадает с количеством точек, переданных в запросе. Если же поле "resample_distance" указано, то количество высот соответствует количеству точек на полилинии locations, между которыми расстояние, равное "resample_distance". |
|
|||
range_height |
Массив пар значений x и y: x - суммарное расстояние в метрах от начала маршрута. Для первой координаты это всегда 0м. y - высота в метрах для координаты по заданному индексу. |
В ответе присутствует это поле, если в запросе задано "range":true. Количество пар в массиве "range_height" определяется по тем же правилам, что и в массиве "height". |
|
Примеры
Запрос с единственной координатой
curl -X POST \ -H "Content-type: application/json" \ -H "Accept: application/json" \ -d '{"locations":"55.601897, 37.581305"}' \ |
Ответ
{"locations":"55.601897, 37.581305","height":[201]} |
Запрос с координатами, для которых нет данных о высотах
curl -X POST \ -H "Content-type: application/json" \ -H "Accept: application/json" \ -d '{"locations":[{"lat":0.0,"lon":0.0}, {"lat":0.1,"lon":0.1}]}' \ |
Ответ
{ "locations" :[{ "lat" : 0.000000 , "lon" : 0.000000 },{ "lat" : 0.100000 , "lon" : 0.100000 }], "height" :[ null , null ]} |