Каких инструментов вам не хватает?

Рвешь, трешь лишнее, клеишь обратно. Ничего не портится.

Из потлатча не хватает удаления бэкспейсом последовательно точек из линии. Можно даже было бы сделать выделение соседней точки линии при удалении конечной точки.

Скажут - есть Ctrl-Z )
(он так и делает, если вы теги с рисованием линии одновременно не правите)

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

Дак говорили уже :slight_smile:

Но это ни разу не инструмент.

Хотелось бы именно у активной линии убирать крайние точки, оставаясь при этом в режиме добавления.

Вот пишу сейчас разные примеры и стираю, потому что каждый из них неубедительный, всегда можно найти обходной способ. Но вот честно, поверьте, после Потлатча такой функции ой как не хватает!

А, понял - 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.

Использование:

  1. Жмём T
  2. Кликаем или тащим мышью заготовку для новой линии. можно несколько раз
    Shift-Click = начать заново
    Ctrl-Click = добавить жёстко фиксированный узел
    Можно привязываться к имеющимся узлам или к первой точке линиию.
  3. Когда всё нарисовано, жмём Enter. Линия упрощается и становится пунктирной.
  4. Если узлов слишком много - жмём стрелку вниз, если слишком мало-вверх (можно пропустить,или нажать несколько раз)
  5. Ещё раз жмём Enter - линия создана и выделена.
    Для нового рисования снова жмём T.

Вики и хелпа пока нет, но есть подсказки в статусной строке.

Замечания и предложения приветствуются (сюда или в http://josm.openstreetmap.de/newticket ). Главное, чтобы эта штука не стала инструментом вандализма)

akks, СУПЕР! Огромное спасибо, очень помогает линии дорог по садоводствам чертить со спутника и быстро-то как!!!

хм. Немного я поторопился :slight_smile: Больше для речек подходит, правда нехорошо что слишком упрощать линию пытается, когда рисуешь нормально выглядит, а нажимаешь enter и 60% точек ух… прибавить их количество никак, только уменьшить или вернуть до -60% :frowning:

Да, упрощалку нужно сделать настраиваемой :slight_smile: Можно даже через значения в настройках JOSM (которые в “расширенных настройках”)

А плагин хороший, годный. Особенно для пера.

Спасибо на добром слове :smiley:

Стрелку вверх щёлкать много раз пробовали? Тогда вернётся точь-в точь к изначально рисованному.

По умолчанию не оставил, чтобы все точки тысячами не штамповали)

Параметры в расширенных настройках есть - fastdraw.startingEps можно поставить 0.01, тогда вообще упрощать не будет.
(пока перезапускать JOSM приходится, исправлю).

Как настраивать с графического интерфейса будем? Нужны предложения.

У упрощения пока один параметр - epsilon у Дугласа-Пеккера. Он стрелками и меняется (можно задать начальное значение и коэффициент изменения по стрелкам fastdraw.epsilonmult, сейчас 1.1).
В принципе, можно ещё по каким-то признакам выбоать узлы, которые не трогаем (как сейчас зелёные).
Острые углы какие-нибудь, или как?

Ещё можно менять расстояние между соседними точками fastdraw.mindelta и точность привязки к узлу fastdraw.maxdist (всё в пикселах).

Что по опыту рисования чаще требуется? :slight_smile:

P.S. Странно - исходники в SVN не попали. Вечером исправлю.