А, понял - Ctrl-Z выбрасывает из режима редактирования и это реально неудобно!
Надо править поведение режима редактирования, добавив в нём backspace.
Самое ядро, уговорить тяжело будет… Попробовать конечно можно. Кто возьмётся?
Мне не хватает плагина, который будет разбирать пазлы полигонов на мультипологоны.
Сначала я написал так: плагина, который позволит выбрать два полигона, имеющих общую сторону, разбить каждый из них на два сегмента - собствененый и общий - удалить один из общих сегментов, а из оставшихся трех сегментов сделать два новых мультиполигона.
Но поскольку таких полигонов не два, а десятки, и они друг с другом сопрягаются как пазл, то после первой такой операции на двух девственных полигонах, применение того же алгоритма к следующим двум - одному уже побитому и другому еще не побитому, - по-моему не сработает. Поэтому я решил поставить задачу сразу шире, а итерактивность алгоритма еще надо продумать.
Но если вдруг что-то подобное уже есть, то было бы ура.
Вроде такой функционал планируется в звериковом плагине :3
Там этому функционалу самое место. Собственно, он меня и натолкнул.
Возможно, я что-то пропустил, но как-то давненько я уже просил очень простую вещь: выделяешь две точки на линии, и по нажатию чего-либо выделяются все промежуточные точки. Очень не хватает!
И ещё хотелось бы иметь возможность двигаться выделением по точкам линии вперёд и назад.
Хотелось бы турборисовалку линий типа рисовалки треков в ГуглоЗемле. Механизм действия прост: зажал ЛКМ и повел, за курсором рисуется линия. Чем быстрее ведешь, тем реже ставятся точки. Удаление последней нарисованной точки — ПКМ. Для ручного трейсинга лесов и речек — милое дело.
Некоторое время назад добавлено разными людьми:
Ядро:
Ctrl-Shift-O: -много узлов/линий/релейшенов сразу
F - follow line, продолжает прикреплять последующие узлы из существующей линии.
UtilsPlugin2:
Shift-Z, Alt-Z - выделить недавно измененные узлы/линии
Ctrl-Shift-Z - вернуть старое выделение - цикл по истории.
Shift-U - убрать все узлы из выделения
Shift-L - поставить узел на прямую линию с соседями,
Ctrl-Alt-S - вставить последний использованный source,
Shift-R - вставить теги с последнего выделенного объекта
Выделить точки между узлами - добавлю в меню Selection, там уже всего полно, пусть и это будет, раз полезно)
Двигаться выделением по точкам линии вперёд и назад - добавить легко, но есть вопросы: а если точек выделено несколько? А если одна, но на двух линиях?
К турборисовалке ближе всего ImproveWayAccuracy, может, попросим автора?
Я пробовал юзать уточнялку. К сожалению, кайфа не ощутил. Мне кажется, турборисовалка должна быть отдельным инструментом…
Да, уточнялка - этотолько для уже готового (и то не всегда), зато автор уже неплохо разобрался, как плагины со сменой режима и рвременным рисованием линий делать. Другим ещё минимум неделю это лопатить надо и всё равно не факт, что получится.
На С++ / WindowsForms под моим руководством что-то похожее писали недавно - ничего сложного, в приципе, но вот аккуратно встроить это в интерфейс JOSM…
Подождём ответа от Kachkaev (автор уточнялки). Может ещё кто возьмётся - дело-то благородное)
Ну а если уж совсем некому будет, в начале лета наклепаю, наверное.
Так что кто начнёт писать код - отпишитесь, застолбите место!
Добавил выделение промежуточных узлов между двумя заданными - Alt-Shift-E в Utilsplugin2.
В итоге я не заметил чьего-либо желания писать эту штуку и сделал её сам. Называетмся плагин FastDraw.
Использование:
- Жмём T
- Кликаем или тащим мышью заготовку для новой линии. можно несколько раз
Shift-Click = начать заново
Ctrl-Click = добавить жёстко фиксированный узел
Можно привязываться к имеющимся узлам или к первой точке линиию. - Когда всё нарисовано, жмём Enter. Линия упрощается и становится пунктирной.
- Если узлов слишком много - жмём стрелку вниз, если слишком мало-вверх (можно пропустить,или нажать несколько раз)
- Ещё раз жмём Enter - линия создана и выделена.
Для нового рисования снова жмём T.
Вики и хелпа пока нет, но есть подсказки в статусной строке.
Замечания и предложения приветствуются (сюда или в http://josm.openstreetmap.de/newticket ). Главное, чтобы эта штука не стала инструментом вандализма)
akks, СУПЕР! Огромное спасибо, очень помогает линии дорог по садоводствам чертить со спутника и быстро-то как!!!
хм. Немного я поторопился Больше для речек подходит, правда нехорошо что слишком упрощать линию пытается, когда рисуешь нормально выглядит, а нажимаешь enter и 60% точек ух… прибавить их количество никак, только уменьшить или вернуть до -60%
Да, упрощалку нужно сделать настраиваемой Можно даже через значения в настройках JOSM (которые в “расширенных настройках”)
А плагин хороший, годный. Особенно для пера.
Спасибо на добром слове
Стрелку вверх щёлкать много раз пробовали? Тогда вернётся точь-в точь к изначально рисованному.
По умолчанию не оставил, чтобы все точки тысячами не штамповали)
Параметры в расширенных настройках есть - fastdraw.startingEps можно поставить 0.01, тогда вообще упрощать не будет.
(пока перезапускать JOSM приходится, исправлю).
Как настраивать с графического интерфейса будем? Нужны предложения.
У упрощения пока один параметр - epsilon у Дугласа-Пеккера. Он стрелками и меняется (можно задать начальное значение и коэффициент изменения по стрелкам fastdraw.epsilonmult, сейчас 1.1).
В принципе, можно ещё по каким-то признакам выбоать узлы, которые не трогаем (как сейчас зелёные).
Острые углы какие-нибудь, или как?
Ещё можно менять расстояние между соседними точками fastdraw.mindelta и точность привязки к узлу fastdraw.maxdist (всё в пикселах).
Что по опыту рисования чаще требуется?
P.S. Странно - исходники в SVN не попали. Вечером исправлю.
akks, а как получить замкнутую линию?
Неочевидно) Щелкнуть на первую точку в конце
(дальше дорисовывать тогда не даст)
Со временем сделаю меняющиеся курсоры на все случаи жизни.
Хм, так и делал, ни разу замкнутая не получилась
Да, мой косяк)
Только кажется, что замкнутая получается. Код есть, но что-то не очень работает. Вечером или завтра разберусь обязательно
Пока можно руками склеивать (М).
А к имеющимся узлам вроде приклеивается (курсор меняться будет).
Из глюков заметил также игнорирование настроек до перезапуска и конфликт клавиш c TagEditor (T занято, будет F, если никто не против)
Кто ещё что посоветует?
Стрелку вверх щёлкать много раз пробовали?
Мануал не читай @ Сразу пользуйся :3