Определение высоты
/elevation — точка вызова сервиса, который предоставляет возможность получения данных о высоте над уровнем моря. Сервис позволяет запрашивать высоту для:
- отдельной точки на карте;
- набора не связанных между собой точек;
- маршрута — последовательности связанных между собой точек (для этого используется поле resample_distance в json'е запроса).
Запрос
Запросы к API возможны с помощью HTTP POST.
Обязательные параметры POST-запроса
Имя поля
|
Формат
|
Описание
|
Пример
| |
---|---|---|---|---|
api_key |
hex-string |
|
||
json |
string |
Тело POST-запроса с параметрами, необходимыми для получения интересующих данных о высотах. |
JSON запроса
JSON передается в теле запроса.
Обязательные поля
Поле
|
Формат
|
Описание
|
Пример json'а с данным полем
|
Пример ответа сервиса
| |||||
---|---|---|---|---|---|---|---|---|---|
locations |
В данное поле можно передавать координаты в одном из 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"}' \ "https://geo.rustore.ru/api/elevation?api_key=<YOUR_API_KEY>" |
Ответ
{"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}]}' \ "https://geo.rustore.ru/api/elevation?api_key=<YOUR_API_KEY>" |
Ответ
{ "locations" :[{ "lat" : 0.000000 , "lon" : 0.000000 },{ "lat" : 0.100000 , "lon" : 0.100000 }], "height" :[ null , null ]} |