wladich / nakarte

Source code of site http://nakarte.me
MIT License
154 stars 38 forks source link

Добавление значений высот точек в экспортируемый файл #298

Closed myadzel closed 4 years ago

myadzel commented 4 years ago

Очень многие знакомые хотят этого (именно от nakarte). У меня, конечно, есть нужный инструмент, но хотелось бы, чтобы такая возможность была реализована при экспорте с сайта.

sikmir commented 4 years ago

Поддерживаю предыдущего оратора, сам использую такой скрипт для сабжа:

#!/usr/bin/env python
import sys
import gpxpy
import gpxpy.gpx
import requests

gpx_file = open(sys.argv[1], 'r')
gpx = gpxpy.parse(gpx_file)

for track in gpx.tracks:
    for segment in track.segments:
        s = ["{} {}".format(point.latitude, point.longitude)
             for point in segment.points]
        r = requests.post('https://elevation.nakarte.me', data="\n".join(s))
        if r.status_code == requests.codes.ok:
            ele = r.text.split("\n")
            for i, point in enumerate(segment.points):
                point.elevation = ele[i]

print(gpx.to_xml())
myadzel commented 4 years ago

@sikmir Замечу, что elevation.nakarte.me принимает только 2000 координат, если их больше, то нужно разбивать на подзапросы. Либо, как вариант, уменьшить точность координат, для снижения их количества в запросе, а потом выбирать наиболее близкие значения.

sikmir commented 4 years ago

Только не 2000, а 10000, если верить исходникам: https://github.com/wladich/ElevationServer/blob/eb92287c2c9803b02631c917c1c732fe0f08d88f/elevation_server.py#L5

myadzel commented 4 years ago

Только не 2000, а 10000, если верить исходникам: https://github.com/wladich/ElevationServer/blob/eb92287c2c9803b02631c917c1c732fe0f08d88f/elevation_server.py#L5

Действительно, спасибо) Не догадался я в код посмотреть, но почему-то опытным путем выставил у себя 2000.

wladich commented 4 years ago

Да, просьба добавить фичу периодически приходит и в почту.

320 пока не мержу, т.к. надо сначала разобраться, почему лагает сервер высот и возможно переехать на нормальный сервер.

wladich commented 4 years ago

Мне захотелось сделать по-своему, поэтому #320 закрываю, сместо него #383. Просьба проверить результат на stage.nakarte.me, т.к. сам я не польуюсь никаким софтом, которому нужны высоты. Особненно инетресует, как обрабатываются треки, у которых часть точек не имеет высоты, например такой: https://stage.nakarte.me/#m=6/35.20074/129.85840&l=O&nktl=-DUpvWHoScssD5u6PYL62A

myadzel commented 4 years ago

Вроде никто не ругается. Отсутствующие значения программы заменяют на ноль.