Если Вы не знаете, что такое OSM, скорее всего всё написанное ниже Вам будет не интересно.
Проблема:
Если открыть JOSM, выбрать область для скачивания треков, выкачать треки и экспортировать их в gpx, то после открытия получившегося файла gpx (например, в GPSMapEdit) можно не узнать то, что было видно в JOSM. В получившемся файле будет куча лишних отрезков, за которыми не видно реальных полезных треков. Лишние отрезки получаются при соединении обрезанных участков обрезанных треков друг за дружкой, так что получается как бы один сегмент.
Решение:
Предлагается удалять все отрезки (здесь под отрезком понимается участок трека между двумя соседними точками) больше некоторой длины. Обосновать это можно следующим образом. Если отрезок слишком длинный, то либо там дорога идёт прямолинейно, и это дорога как минимум относительно хорошего качества, либо трек сильно генерализован и не соответствует реальному движению по дороге. В ооих случаях он неинтересен с точки зрения картографии. Соответственно, если отрезок удаляется, то трек рвётся на 2 трека в месте разрыва. При этом пропадают только отрезки. Точки не пропадают.
Так как ждать решения от OSM можно до пятого пришествия, то проще и быстрее сделать это самому.
Или воспользоваться предлагаемой тулзой.
В качестве побочного бонуса тулза умеет задавать имена непоименованным трекам и фильтровать (то есть, удалять не соответствующие фильтру) треки.
Так как тулза писалась в общем-то для причёсывания конкретного сильно загаженного файла gpx для конкретного участка местности, в ней может быть куча багов и косяков, она дофига выводит в консоль, я сейчас лишь только немного облагородил указание параметров в командной строке.
Поэтому объявим это версией номер ноль.
Название: GPX_DIVIDER.rar
Размер: 215.07 кб
Доступен до: 2011-07-21 01:22:16
Ссылка для скачивания файла: http://ifolder.ru/24263738
Использовать тулзу можно двумя способами.
Первый способ - это просто кидать мышкой на EXEху файлы и получать результат. В том случае программа использует параметры по умолчанию. Дистанция берётся 500 метров.
Второй способ - запускать из командной строки (или кидать мышкой треки на специально подготовленный батник, что по сути одно и то же). Пример батника есть в архиве.
Описания некоторых параметров программы на примере батника:
GPX_DIVIDER.exe "src=%1" "filter=;1.zip new_part 20;" "rename=_%%.3d" "mode=df"
После "src=" идёт имя исходного файла (не меняется). Программа читает ибо gpx либо gpx.gz.
После "dst=" идёт имя результирующего файла (если есть - перезаписывается). Если опущено или пусто - берётся имя исходного файла и прибавляется "_div.gpx".
После "filter=" идёт фильтр в виде списка значений имён треков, которые надо оставить в результирующем файле. Так как заранее неизвестно, что там за имена, разделителем имён в параметре служит первый (он же последний) символ.
После "rename=" идёт формат для генерации имён для непоименованных треков. В примере два процента, так как это в батнике.
После "mode=" идёт перечень режимов работы программы. Определяется просто по наличию или отсутствию d (divide), f (filter) или r (rename).
После "distance=" идёт минимальная дистанция (в километрах), при которой трек делится на части. Разделитель дробной части только точка. По умолчанию 0.5.