Форум на Kuban.ru (http://forums.kuban.ru/)
-   Пешеходный туризм (http://forums.kuban.ru/f1229/)
-   -   У кого много GPS треков? (http://forums.kuban.ru/f1229/u_kogo_mnogo_gps_trekov-6850640.html)

ПятиГорский 26.05.2015 20:00

150-PNL >Все верно говоришь, просто неточности в формулировках вызывают непонятки в спорах. Самый крайний пример - ActivePerl. Я немного использовал скрипты на Perl и именно под Виндой, так смею заверить что без вебсервера (локального, ессно) обойтись не удастся. Но это все к теме не имеет отношения :)

PNL 26.05.2015 20:08

Кстати, в САСе добавить такую кнопочку, по-моему, раз плюнуть для его авторов, а? :)

PNL 26.05.2015 20:09

161 - Зачем веб-сервер? Кучу скриптов использую у себя в Windows на перле. Они просто консольные - выдают результат на экран консоли или в файл, или занимаются сортировкой файлов - запустил и скрипт скинул в подпапочку то что нашел. Зачем тут веб?

ПятиГорский 26.05.2015 21:26

[quote=PNL;39104117]Зачем тут веб?[/quote]Зачем пользователю консоль :) Программист один, пользователей много. Все - для блага человека.

PNL 26.05.2015 21:43

Множество программ (даже в Windows) - консольные. Не вижу проблемы. Если программе ничего не надо показывать, а только отсортировать папку с файлами, то зачем делать интерфейс?

PNL 26.05.2015 21:44

[quote=ПятиГорский;39104777]Все - для блага человека.[/quote]
Если это нужно многим, то лучше сделать сайт.
А если оно надо одному человеку один раз запустить, то на фига?

wayerr 26.05.2015 22:24

>Можешь придумать алгоритм, который сможет это делать, не храня все точки всех треков в базе данных? (Я без подколки - серьезно).

>1. Сканируем один раз все имеющиеся треки, определяем вокруг каждого описанный прямоугольник, заносим его координаты в базу данных вместе с именем/номером этого трека.


Собственно программа скриншот которой в заголовке так и работает

> Для каждого отобранного трека открываем файл с треком, определяем число точек, если их слишком много - прорежаем (берем не каждую, а каждую вторую, третью, а еще лучше каждую N/100-ю - смотря как реализуем), для каждой просмотренной точки трека определяем расстояние до целевой точки - при таком масштабе можно по эвклидовой-пифагорийской формуле (корень из суммы квадратов катетов), если нашлась точка с расстояним меньшим N км - выводим имя файла такого трека - он нам подходит.

тут можно прикрутить R*-tree для трека (на работе я в нем хранил "прямоугольники" описанный вокруг отрезка из двух точек трека, без всяких дальнейших оптимизаций) и его индекс сбросить в файл (также это же дерево можно использовать для прямоугольников описывающих треки)

на работе я делал чуть проще - у нас был postgresql который в select позволял [url]http://postgis.net/docs/manual-2.1/ST_Distance_Spheroid.html[/url] и емнип строить по этому индексы, вроде для mysql тоже что-то есть, есесно оптимизировать обрезая по градусам тоже стоит, хотя НМВ лучше хранить проецированные координаты

wayerr 26.05.2015 22:25

да, в postgres хранились точки треков и это было достаточно быстро даже на какомто там core2duo (машина разработчика) хотя есесно крутилось на нормальном сервере.

PNL 26.05.2015 22:45

168 - Ну просто тысяча треков по тысяче точек - это миллион точек в базе. Хотя...

wayerr 26.05.2015 22:57

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

wayerr 26.05.2015 23:00

хотя если для практических целей можно фильтровать треки (есть [url]https://ru.wikipedia.org/wiki/Алгоритм_Рамера_—_Дугласа_—_Пекера[/url] )

krakozyab 26.05.2015 23:18

0-wayerr >
[em]В общем, у многих наверняка есть архив своих (и не очень) GPS треков. У меня вот скопилось около трех сотен штук того добра.[/em]
Лучше конечно свои. А то рисуют всякие идиоты, разбери потом...

[em]При планировании очередного похода возникает надобность найти все треки которые затрагивают интересующий регион. Кто и как решает эту проблему?[/em]
Написал базу и клиента под нее, туда же подлил данные SRTM, в результате побочная функция в том, что можно нарисовать трек в озике, импортировать-экспортировать, и получить трек с высотами.

krakozyab 26.05.2015 23:23

169-PNL > чо там этих точек, данные крохотные, пусть хоть миллиарды... миллион вообще не таблица для современной БД, вон даже в экселе можно учитывать : )

krakozyab 26.05.2015 23:25

ЗЫ: туда же данные о путевых точках, тоже полезно. Можно с фотками. Особенно с теми у которых координаты, с canon 6д например если.

x057722 27.05.2015 03:25

[quote=wayerr;39102122] проекция в прямоугольные координаты (xyz) только ради фильтрации дороговато,[/quote]
сущие копейки[quote=PNL;39102605]Которым вытягивают из базы данные скриптом на Перле. Выдыхай[/quote]
Существует куча серверов, ничего не ведающих о перле. RTFM
[quote=PNL;39102941]Нет такой простой формулы "расстояние от точки до трека",[/quote]
На серьёзных SQL серверах такая штука UDF=user defined function. Пишется на любом языке программирования.
[quote=PNL;39102618]Перечень мест в описании тоже делается автоматически? :)[/quote]
На этапе начального ввода естественно вручную примерно так 50_48_00_N_42_01_00_E=Урюпинск. А как база набъется содержимым, можно брать из справочника (в терминах 1С)
[quote=PNL;39102734]Простота формулы в применении к ИТ подразумевает скорость[/quote]
Как-то замерил я время
вставка 5003 файлов из delphiworld
Каждый файл считывался, удалялась HTML шелуха, описание и тело записывались. 46 sec all files Процессор 800мГц.
[quote=PNL;39102734]Один градус широты [/quote]
Правильно: один градус по широте, те по параллели.[quote=PNL;39102734]Что, правда, дает еще большую оценку километража [/quote]
Фактический километраж больше из-за неизбежной извилистости троп.[quote=PNL;39102977]Я ведь, как программист веб-проекта, должен еще сразу думать[/quote]
И что здесь обсуждается - веб-проект или своя персональная база? [quote=Ansv;39103697] если мне нужен только район Большой Лабы[/quote]
Лёгким движением руки набиваются координаты точек ограничивающего многоугольника, автоматически берутся его ограничивающие точки на севере, востоке, юге и западе. После чего используется стандартный алгоритм принадлежности точки многоугольнику.
[quote=PNL;39104034]Чтобы один раз просканировать свою базу треков в поиске нужных, конечно, не нужна никакая база[/quote]
СУБД нужны именно для облегчения жизни.
[quote=PNL;39104940]Если программе ничего не надо показывать, а только отсортировать папку с файлами, то зачем делать интерфейс?[/quote]
Программа для человека, а не человек для программы. Пусть чел видит карту. Ему это очень полезно и нужно.
А инет использовать для обмена информацией.
[quote=Обормот;39105715]Кто и как решает эту проблему?[/quote] Держу карту в голове. Очень удобно.

PNL 27.05.2015 08:39

[quote=wayerr;39105594]хотя если для практических целей можно фильтровать треки[/quote]
Зачем так усложнять? Можно просто взять каждую вторую точку, на практике получится не сильно хуже.

PNL 27.05.2015 08:40

[quote=xo57722;39106301]Существует куча серверов, ничего не ведающих о перле. RTFM [/quote]
Я говорю о себе. Я пишу на Перле. Как пример. Выдыхай.

PNL 27.05.2015 08:41

[quote=xo57722;39106301]На этапе начального ввода естественно вручную примерно так 50_48_00_N_42_01_00_E=Урюпинск. А как база набъется содержимым, можно брать из справочника (в терминах 1С)[/quote]
Так вот мы с автором ищем способ, не требующий ничего вводить вручную.

PNL 27.05.2015 08:43

[quote=xo57722;39106301]СУБД нужны именно для облегчения жизни.[/quote]
Ну да, я их для этого и использую. И? В чем смысл твоего ответа?

PNL 27.05.2015 08:44

[quote=xo57722;39106301]Правильно: один градус по широте, те по параллели.[/quote]
Один градус по параллели - это один градус долготы. Не путай.

krakozyab 27.05.2015 08:50

А никто не думал над задачей генерации новых треков? Допустим, надо пройти из А в Б оптимальным путем. Задаются веса перемещения по горизонтали и вертикали, кожффициент сложности уклона. И вперед. Имеем связный граф, дальше дело техники. Я решал такую задачу. Но конечно программа не учитывает буреломы, заросли ганжубаса и логово медведя. Она тупо анализирует поверхность и выдает оптимальный по стоимости путь.

Следствие: эту же функцию можно использовать для оценки стоимости любого имеющегося реального трека, в т.ч. и рисованного в озике. Например, в часах. Полезно при планировании маршрута. Стоит немного подобрать весовые коэффициенты, и результаты вполне правдоподобны.

ЗЫ: для сильных программистов, база на MSSQL, 181 млн точек высот, это горный Кавказ от Новоросса до Эльбруса. Занимает 10 GB. Шевелится удобоваримо на домашнем сервере. Если использовать оракл или постгре и нормальное железо, можно вообще всю Россию грузануть, а если кластер, всю планету. Ну, почти всю, SRTM не сканировал поверхность в приполярных широтах. Впрочем база тут не нужна, можно тупо зачитать растр в память и считать там. Полный объем незапакованных данных занимает 42 GB, что вполне по силам любому приличному серверу. Интересно, что до сих пор никто толком не игрался с этими данными, хотя они лежат в свободном доступе на сайте NASA.

ПятиГорский 27.05.2015 09:08

181-Обормот >Есть люди, считающие горный туризм спортом, есть такие, кто считает это видом досуга/отдыха.... оказывается, есть еще и программисты :)

PNL 27.05.2015 09:26

182 - Я скажу больше, в туризме особенно много программистов.

ПятиГорский 27.05.2015 10:33

183-PNL >Я не о том, а о подходе. Надеюсь, анекдоты о программистах (как вариант - о математиках) хорошо известны. ИМХО, пост 181 - один из них :)

PNL 27.05.2015 12:27

184 - Не понял. Нормальный пост.

wayerr 27.05.2015 12:29

181-Обормот > SRTM

srtm очень-очень кривой, классическая его проблема - там нет обрывов

ПятиГорский 27.05.2015 12:29

185-PNL >[quote=Обормот;39106893]А никто не думал над задачей генерации новых треков? [/quote]

PNL 27.05.2015 12:48

187 - И?

wayerr 27.05.2015 12:56

Ну а смысл этой задачи в такой постановке? у нас есть тропы и дороги - если их учитывать то задача сводится к уже решенной прокладке маршрута (навигаторы это уже умеют), если игнорировать тропы и дороги - то задача бессмысленна

Ansv 27.05.2015 12:56

"А никто не думал над задачей генерации новых треков?"

А никто не думал, что будет, когда кучу треков нагенерят и зальют в сеть? И что будет с теми, кто попытается ими воспользоваться.

Ну и давайте будем использовать правильные термины:
- сгенерить можно не трек, а маршрут
- трек - это уже кем-то пройденный маршрут.

ПятиГорский 27.05.2015 13:08

188-PNL >бывает...

PNL 27.05.2015 13:31

Кстати, увидеть на карте сразу ВСЕ треки из Кавказии можно по ссылке [url]http://caucasia.ru/site/tracks[/url] но там пипец :)

PNL 27.05.2015 13:55

Добавил на главную Кавказии карту, кликнув в любом месте которой, увидите список треков, которые проходят рядом (в 1 км). Пока без отображения этих треков на карте (просто список в попапе). Сейчас думаю над тем, чтобы их еще и одновременно на карте выводить разными цветами.

PNL 27.05.2015 13:59

Загрубил до 3 км.

PNL 27.05.2015 14:00

Длинный список только не помещается, надо в попапе как-то прокрутку сделать и карту раскрывающуюся на весь экран...

vovan519 27.05.2015 14:03

"А никто не думал над задачей генерации новых треков?"

Чисто математически задача не очень сложная, но бесполезная.

Если выбирать супер оптимально сгенерированный по карте трек - 10 км или в обход извилисто по тропе 15 км, то я выберу второе.

x057722 27.05.2015 17:27

[quote=PNL;39106799]Я говорю о себе. Я пишу на Перле. [/quote]
Этот язык совершенно не подходит для обработки чисел.
[quote=PNL;39106821]В чем смысл твоего ответа?[/quote]
В том, что вместо хранения кучи файлов, + к ним ещё файлы,.. надо аккуратно придумать структуру базы, залить в неё данные и написать хорошую морду. Вот это и надо обсуждать, а не спорить о единицах измерения близости.[quote=PNL;39106805]Так вот мы с автором ищем способ, не требующий ничего вводить вручную.[/quote]
Ещё раз, откуда возьмутся имена объектов?[quote=PNL;39106825] Не путай.[/quote]
Я не путаю, а опускаю тривиальную информацию.[quote=Обормот;39106893] Интересно, что до сих пор никто толком не игрался с этими данными,[/quote]
Как говорят французы а на фуа? Уже доступны карты 250м.[quote=Обормот;39106893]Допустим, надо пройти из А в Б оптимальным путем[/quote]
ходят для удовольствия, а не оптимальности. Ведь Эльбрус и с самолета видно здорово.
А всяческие коэффициенты для разных людей разные. Для большинства легчайший путь из Башиля в Сванетию через Нарзанный+ Твибер, а для меня через Лычат.

krakozyab 27.05.2015 19:43

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

x057722 27.05.2015 22:25

[quote=Обормот;39114303]где заведомо нет проторенных путей, а путь надо проложить. [/quote]
Трек - результат похода. Соответственно начинается всё с придумыванич - а куда хорошо пойти. А для этого надо как минимум много смотреть на карты. Так что проход по непроторенным офф топ.[quote=Обормот;39114303]для получения нового знания[/quote] О чём? Возьми на caucatalog картк и нарисуй на ней упомянутые 500-700 треков. Потом долго медитируй.

PNL 28.05.2015 11:12

Короче, сделал то, что надо было автору - кликаете на карту на главной caucasia.ru и видите как список треков, проходящих мимо этой точки, так и сами треки разным цветом грубо на карте. Это как раз то, чего не хватает сайту gpsies. Сейчас только всплывающий popup со списком треков закрывает полкарты, буду менять дизайн сегодня (чтобы как у викимапии и осм было - большая карта, а остальные разделы - пункты меню вверху).


Текущее время: 17:45. Часовой пояс GMT +3.