В итоге я не заметил чьего-либо желания писать эту штуку и сделал её сам. Называетмся плагин FastDraw.
Использование:
Жмём T
Кликаем или тащим мышью заготовку для новой линии. можно несколько раз
Shift-Click = начать заново
Ctrl-Click = добавить жёстко фиксированный узел
Можно привязываться к имеющимся узлам или к первой точке линиию.
Когда всё нарисовано, жмём Enter. Линия упрощается и становится пунктирной.
Если узлов слишком много - жмём стрелку вниз, если слишком мало-вверх (можно пропустить,или нажать несколько раз)
Ещё раз жмём Enter - линия создана и выделена.
Для нового рисования снова жмём T.
Вики и хелпа пока нет, но есть подсказки в статусной строке.
хм. Немного я поторопился Больше для речек подходит, правда нехорошо что слишком упрощать линию пытается, когда рисуешь нормально выглядит, а нажимаешь enter и 60% точек ух… прибавить их количество никак, только уменьшить или вернуть до -60%
Стрелку вверх щёлкать много раз пробовали? Тогда вернётся точь-в точь к изначально рисованному.
По умолчанию не оставил, чтобы все точки тысячами не штамповали)
Параметры в расширенных настройках есть - fastdraw.startingEps можно поставить 0.01, тогда вообще упрощать не будет.
(пока перезапускать JOSM приходится, исправлю).
Как настраивать с графического интерфейса будем? Нужны предложения.
У упрощения пока один параметр - epsilon у Дугласа-Пеккера. Он стрелками и меняется (можно задать начальное значение и коэффициент изменения по стрелкам fastdraw.epsilonmult, сейчас 1.1).
В принципе, можно ещё по каким-то признакам выбоать узлы, которые не трогаем (как сейчас зелёные).
Острые углы какие-нибудь, или как?
Ещё можно менять расстояние между соседними точками fastdraw.mindelta и точность привязки к узлу fastdraw.maxdist (всё в пикселах).
Что по опыту рисования чаще требуется?
P.S. Странно - исходники в SVN не попали. Вечером исправлю.
Только кажется, что замкнутая получается. Код есть, но что-то не очень работает. Вечером или завтра разберусь обязательно
Пока можно руками склеивать (М).
А к имеющимся узлам вроде приклеивается (курсор меняться будет).
Из глюков заметил также игнорирование настроек до перезапуска и конфликт клавиш c TagEditor (T занято, будет F, если никто не против)
Исправил баги, добавил полную привязку к имеющимся узлам (курсор меняется).
Кнопку оставил T, ибо F занята, а TagEditor-ом не так много народу пользуется.
Что еще стоит изменить (куда вешать gui настроек, кстати?) ?
Попробовал сам рисовать своим творением - удобно только для маленьких объектов.
Придётся со временем добавить как минимум:
Удаление последних узлов до зелёного, а не только по одному (чтобы перерисовать неправильный изгиб, не стирая всего)
Может, вообще удаление сегмента между зелёными сделать - shift-click, например.
Потом, правда, заполнять его по новой придётся, в середину списка новые узлы совать. Но это легко.
А очистку линии на ctrl-shift-click перевешу.
Отмену 1 узла сделаю по alt-click (и backspace)