Клуб Народной карты

Yet another Converter

...или как случайно создать комбайн. 

Однажды, в одной далёкой-далёкой галактике, прокатившись с трекером по незнакомым местам, я оказался один на один с кучей различных файлов с GPS данными. У меня был трек, были точки (waypoints) и, к некоторым из них, были привязаны фотографии.

"Надо импортировать всё это в Блокнот Картографа", - подумал я и сел за написание своего конвертера, благо, как раз начался отпуск. На всякий случай, чтобы было интереснее, писать стал на Питоне, с которым был совершенно не знаком.

По прошествии одной бессонной ночи появился консольный скрипт gpx2nmap, которому можно было скормить gpx файл меток с привязанными к ним фото и треками, а на выходе получить заветный json файл, который отдать НК для отображения. В процессе отладки скрипта обнаружилось, что на самом деле gpx файлы не очень дружат с внешними данными и для хранения таких данных в процессе переноса с устройства, лучше пользоваться форматом kmz, который, в свою очередь, есть просто zip-архив с упакованными внутрь фото и описанием в формате kml. Параллельно подумалось, что мало кому интересно разбираться в тонкостях установки модулей Питона в консоли и надо бы сделать настоящее приложение.

Сказано - сделано! Скрипт научился понимать оба формата и распаковывать фотографии из архива в папочку, которую можно перенести на Яндекс.Диск и появилось приложение с кнопочками, а я пошел отсыпаться за вторую бессонную ночь.
Вы можете резонно заметить, что делать заметки можно и без фоток, но ведь с ними интереснее. Да и часто так бывает, что проще сфотографировать знак, чем в приложении описывать откуда куда нельзя ехать.  И в этот момент меня осенило. А зачем вообще трекер, если фотографии и так содержат GPX данные! Берём фотографии, отдаём их все приложению и оно экспортирует нужные нам данные во всё тот же json файл Блокнота.

Ехал на работу, снял места, где улицу перекрыли. И не нужно никаких трекеров.

В этот момент надо было бы остановиться, но поздно.
Сначала добавить импорт csv файлов. Мало ли откуда у меня может быть список координат, например, всех филиалов компании. Ок, сделано.
Потом подумалось, что иногда хочется данные собранные за несколько дней можно было объединить в один файл. Готово! Приложению можно отдать любую комбинацию файлов всех поддерживаемых форматов и оно сделает один выходной файл. И, на всякий случай, стало можно взять сами файлы блокнота json и тоже их объединить в один или добавить к каким-то другим данным.
К счастью, на этом я решил остановиться. Форматов данных много, но только с этими я реально имел дело. Для всего остального разнообразия gps данных есть GPSBabel

А вот ещё хорошая идея - треки в Блокноте не имеют подписи, а иногда очень удобно отметить участок дороги в приложении и подписать его, к примеру, "тротуар". Данные то есть, но приложить некуда. Так почему бы не добавить посредине трека ещё одну метку с его названием. Теперь видно, как тот или иной трек называется.

На этом идеи иссякли, отпуск подходил к концу, но приложение было готово!
Да, ему далеко по красоте до Инстаграма, а мои познания Питона слишком скромны, но своё дело приложение делает. Тут ещё надо отметить, что сам я ни разу не видел, как оно выглядит под настоящим Windows. Всё собирается в Wine, а там внешний вид оставляет желать лучшего.

Tl;dr

Any2nmap конвертер - скачать на GitHub.
Понимает: gpx, kml, kmz, csv, jpg, json форматы. Можно одновременно выбрать любые комбинации для экспорта в один файл.
Импортирует: треки, точки (waypoints)
Экспортирует результат работы в любую указанную папку.

Если что-то не работает - жалуйтесь, присылайте примеры файлов, буду багфиксить.

57 комментариев
В тексте ошибка: "Tl;dr"


Опять завели меня на какой-то непонятный сайт. Трудно на Яндекс.Диск загрузить?
Картограф от Бога
1 сентября 2016, 14:00
Котик,
это не ошибка)
Картограф от Бога,
f xnj ;t 'nj, если не ошибка? Ещё какой-то дурацкий жаргон?
Картограф от Бога
1 сентября 2016, 14:23
Котик,
Вроде того)
Котик,
Tl;dr это таки https://en.wikipedia.org/wiki/TL;DR
А на Диск да, можно - https://yadi.sk/d/EmJJC1_KufxAA
Aleksey,
переводчик переводит как "МНОГАБУКАФ.". Это, по крайней мере, понятными словами написано.
Спасибо, очень и крутая и полезная штука)
А что за приложение на первых скринах?
AlexPS,
https://play.google.com/store/apps/details?id=psyberia.alpinequest.full
Приложение очень классное. Позволяет любые подложки загружать, в том числе в оффлайн закачивать. И предельно просто организовано добавление меток и путей.
Семён Федотов
1 сентября 2016, 17:02
Русифицировать бы)
Семён Федотов,
можно и украинизировать. Завёл таск: https://github.com/Coder-ak/any2nmap/issues/4 ))
Семён Федотов
1 сентября 2016, 18:58
Накопилась куча записей из MyTracks, экспортировал всё в kmz. https://yadi.sk/d/gyVy8YSNugSTZ - тут лежит сам трек и то, что из него получилось. А получилось мало что - лишь точки начала и конца. При этом если загрузить kmz на gpsvisualizer.com, виден весь трек.
Семён Федотов,
попробуйте выгрузить в GPX. C KML (KMZ - это архивированный KML с иконками точек) гугл обходиться иногда очень фривольно.
Семён Федотов
2 сентября 2016, 14:54
Alexxegorov,
попробовал в GPX. Не конвертирует вообще, gpsvisualizer.com говорит, что нет GPS-информации. Вечером попробую в остальные форматы.
Семён Федотов,
, мой конвертер пробовали? Там Kml как раз должен быть заточен под MyTracks.
Семён Федотов
2 сентября 2016, 17:03
Alexxegorov,
пробовал и, если не ошибаюсь, была ошибка на line 32.
Семён Федотов,
действительно, тут используются новые расширения стандарта kml и библиотека в приложении их не поддерживает. Пошел читать, как реализовать.
Семён Федотов,
Разобрался.
Только такое количество треков НК явно не может переварить. Там же файл в почти 4 МБ вышел. Если загружать кусочками, то всё отлично.
Завтра уже релиз обновлю.
Семён Федотов,
можно обновиться. 
Версия 3.5 - https://github.com/Coder-ak/any2nmap/releases/latest 
Но всё равно такое количество треков в одном файле НК не сможет загрузить. 
Семён Федотов
3 сентября 2016, 12:44
Aleksey,
теперь при нажатии на кнопку Convert вообще ничего не происходит, какой бы трек я не выбрал.
Семён Федотов,
да, kmz забыл включить. https://github.com/Coder-ak/any2nmap/releases/latest поправил.
Семён Федотов,
и ещё раз поправил. Надеюсь окончательно.
Не работает на Windows 10. Пишет эту ошибку: https://yadi.sk/i/PI2vLPRczwSRX
XjCyan1de,
Добрый день!
Ссылка не открывается.
Попробую найти 10-ку и проверить, если найду баг, поправлю.
Aleksey,
http://prntscr.com/dej7gn
XjCyan1de,
вот решение проблемы: https://pc-helpp.com/141-skachat-fayl-msvcr100dll-dlya-windows-7-8.html
это не в приложении дело.
Aleksey,
Запустил, теперь никакой трек не конвертирует в .json, выплёвывает пустой log файл... Google Earth спокойно открывает треки
Aleksey,
Потратил свои кровные 300 рублей на AlpineQuest и все треки начали экспортироватся, спасибо за прогу)
XjCyan1de,
А можете куда-то выложить файл, который не конвертируется. Может там что-то поправлю в парсере.
Альпайнквест классный. Там разработчик по моей просьбе добавил параметр, чтобы в gpx с фото могли экспортироваться треки. Но можно и в kmz сохранять.
Спасибо!
Из фото вытаскивает данные, а GPX не конвертирует. Папка назначения остается пустой.
almazamama,
не заметил уведомления о сообщении. Если ещё актуально, можете скинуть gpx файл куда-то и прислать ссылку. Посмотрю, что там не так.
"Ошибка загрузки фотографии" при выборе любой точки с привязанным фото. Покопался в json файлах. Оказалось, что при добавлении точки обычным путём, через Блокнот, в значении ключа photo прописывается локальный путь к файлу ("photo":"/2017-04-01/многобукоф.jpg") Конвертер же всегда прописывает только имя файла ("photo":"мояфотка.JPG") Приходится каждый раз после получения json файла дописывать в нём имена папок. Такое только у меня?
☭Okclick,
нет, это надо поправить в приложении. Раньше работало и без указания пути, но теперь хочет путь. Постараюсь на днях выложить обновление.
☭Okclick,
запустите приложение, должно выскочить предложение об обновлении.  Или скачайте тут: https://github.com/Coder-ak/any2nmap/releases/latest
Вроде поправил, если что, пишите )
Aleksey,
оперативненько) Работает, спасибо!
☭Okclick,
та я давно пофиксил для себя, а выложить никак руки не доходили )
Если что ещё поправить или добавить, пишите!
в программе Any2nmap  обнаружен вирус https://goo.gl/BhFvJJ
Обновлено 1 мая 2017, 17:01
Иван,
58 из 61 антивирусов, включая Касперского, DrWeb, Avast, Symantec и т.д. не нашли ничего подозрительного, и только 3 никому не известных антивиря якобы что-то обнаружили. Не о чем беспокоиться.
☭Okclick,
 Безопасность важнее, в программе обнаружен Trojan
https://goo.gl/BhFvJJ

Даже если 3 антивир. может остальные антивирусы не знают об этой угрозе.
Обновлено 2 мая 2017, 02:45
Иван,
никто не знает, знают только два китайца, у одного из которых официальный сайт не обновлялся с 2015 года, а у другого вообще не загружается) И ещё какой-то американец из Виргинии смотрит с подозрением. Ну, не доверяете — не пользуйтесь.
Иван,
Путём не очень сложных манипуляций из этой программы, которая по сути архив с исполняемыми файлами Питона и кодом, можно вытащить исходники и рассматривать их. Вполне возможно, что какие-то антивирусы и реагируют так на этот способ сборки приложения. 
Попробовал сегодня скормить конвертеру файлы из Геотрекера с записанным треком (раньше только ставил маркеры). Нажимаю "конвертировать" - ничего не происходит... Сначала подумал, файл слишком большой, но оказалось, что когда помимо маркеров записываешь трек, Геотрекер добавляет в экспортируемый файл дополнительно имя автора и ссылку в Google Play (в начале файла и в начале каждого трека). И конвертер почему-то спотыкается на строках с информацией об авторе: GPX, KML. Если удалить их из файла, то всё работает. А link-и не мешают.
☭Okclick,
а можете скинуть файлик мне, гляну, чего ему не нравится. Можно в почту coder-ak@yandex.ua
Отличныйконвертор. Целую неделю ездил по Краснодарскому краю и Адыге. Почти нигде в горах нет доступа к интернету. Писал треки с помощью OSM. Дома легко конвертировал записанные треки в формат json с помощью вашего конвертора. Потом импортировал их в блокнот картографа. Всё получилось! Спасибо за конвертор! Жить (картографировать) стало легче и веселее!!!
calibrator33,
огромное спасибо! )
Что-то не удалось сконвертировать треки формата KML, экспортированные из Google maps.
Последовательность экспортирования была следующая:
1. В меню maps.google.com - "Хронология" (на компьютере PC)
2. Далее в меню "За день" выбрал дату, в которую ранее писался трек (на смартфоне Андроид).
3. В правом нижнем углу нажал на "Шестеренку" и выбрал в раскрывшемся меню "Скачать данные за день в формате XML".
Вот этот файл что-то не обрабатывается конвертором Any2nmap. Посмотрите, пожалуйста, что там не так?
Обновлено 14 июня 2017, 14:46
calibrator33,
xml точно не подойдёт, если там есть возможность скачать в каком-то другом формате - kml, kmz тогда должно конвертировать.
Aleksey,
Ой, хотел написать, что именно kml из Google - но ваша программа молчит в ответ и ничего не делает в отличие от треков, скачанных из OSM/ Попробуйте сами выполнить последовательность, описанную мной выше, может сможете что-то подправить в приложении?
Алексей К.
5 января 2018, 18:04
calibrator33,
какой-то такой у нас ооооочень неспешный диалог получается )
Удалённый пользователь
21 декабря 2017, 06:48
а куда присылать?
Удалённый пользователь
4 января 2018, 15:07
почитатй тут! Возможно ответ где-то рядом.
Обновлено 4 января 2018, 15:08
Конвертировал я трек, как в слои то импортировать?
💥 Дядя Юра 💥,
Я правильно понимаю, что если просто так положить в папку яндекс диска сконвертированные треки, работать ничего не будет?
Yandexuser,
будет работать, если сложить их в правильную папку:
/Приложения/Блокнот картографа Народной карты/2018-12-31
Если треки сразу не появятся, то нужно перезагрузить вкладку с Народной картой.
Андрей Степанов
6 августа 2019, 21:04
Спасибо Вам большое за Ваш труд! Попробовал - работает! Очень странно, что Яндекс до сих пор не сделал такой встроенный в НЯК функционал...