Инструмент FastDraw для JOSM - рисование и упрощение линий

О круто, работает. Спасибо.

Вот несколько соображений, которые возникли в ходе работы с этим инструментом:

  1. Фича, которая позволяет заново упростить нарисованный но не загруженный вей, возможно и полезна, но пока доставляет некоторые неудобства. Я нарисовал контур, хочу нарисовать еще один, но выделение не сбросил. Начинаю рисовать и понимаю что у меня включился режим упрощения предыдущего контура, причем отменить его вроде никак нельзя (Esc не работает), кроме как упростив, но в этом случае теряются теги и членство в релейшнах - приходиться делать undo, сбрасывать , и такое ощущение что иногда это приводит к duplicate ways.

Вообще как мне кажется, возможность выхода из режима рисования линии по Esc была бы полезной. Чтобы не потерять нарисованное можно задавать вопрос если нарисовано больше 10 узлов.
Упрощение существующих линий возможно стоит вынести в отдельный инструмент, с поддержкой тегов и пр. цацками, типа незименения точек с тегами.

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

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

  3. Прилипание к узлам какое-то странное получается - как правило приходтся разлеплять потом, т.к. возможности отказаться по Ctrl как в обычном рисовании линии нет. Возможно стоит попробоавть такой вариант: рисование с зажатой ЛКМ и пробелом никогда не прилипает т.к. вероятность того что шаг между точками совпадет довольно маленькая. По щелчку прилипать, но при зажатом Ctrl не прилипать. Остается проблема с фиксированными узлами, но мне кажется все узлы создаваемые кликом ЛКM / пробелом делать фиксированными.
    При таком варианте работа инструмента будет аналогична стандартному рисованию линий, причем если все узлы фиксированные, то этап упрощения можно будет пропустить.
    Для пущей совместимости можно добавить завершение рисования по даблклику, будет совсем похоже.

  4. Мне кажется было бы удобно, при зажатом ЛКМ/пробеле показывать в статусбаре текущее min_distance, причем не только в пикселях но и в метрах. Поясню, я совершенно не задумываясь проведу линию с точками через каждые 10px, но вот перед тем как проводить линию с точками через 5 метров я трижды подумаю нужна ли в этом месте такая подробность. Судя по тому что в JOSM есть линейка масштаба пересчет должен быть не очень сложным. С другой стороны кружочек частично решает эту проблему, но он только появился :slight_smile:

Простите за простыню :slight_smile:

Эх, тему создал - теперь отвечать придётся )))

  1. Кроме упрощения, можно дальше дорисовыввать или кусками перерисовать
    .
    Undo вроде работать должно, выход по ESC добавлю. Наверное, спрячу упрощение существующей линии подальше - на T T например. Дописывать его муторно и глюков много будет. И споров, как в http://forum.openstreetmap.org/viewtopic.php?id=12895 . Перевешивание тегов и отношений когда-нибудь добавлю. Или просто изменение линии без удаления осилю.

2,3) Тянучку починю, толщину сделаю параметром. На пунктире действительно плоховато видно, что-нибудь придумаем. Серенькую линию тоже можно.

  1. С прилипанием просто глюк какой-то, оно при сохранении происходит. Только что заметил, чиню.
    Сделал галочки в настройках насчёт прилипания и фиксации… Щелкаю точки по одной, а потом упрощаю достаточно часто, так что фиксировать все точки не хочется (с автоупрощением, кстати, логические проблемы могут быть из-за фиксированных узлов, но это лечится). Ctrl занят той самой фиксацией, но на Alt повесить отключение привязки могу.

Даблклик - боюсь, срабатывать часто случайно будет из-за специфики процесса. Сильно кривые линии, вроде, не очень часто рисуются - можно и Enter нажать:)

  1. В статусе можно легко вывести хоть что, главное - чтобы оно туда поместилось :slight_smile: min_distance выведу, но, наверное, при работе стрелочек рядом с пикселами - а то подсказка не влезет. 5 м на отрезок - почему бы и нет, всё равно потом упростится.

Спасибо за потраченное на пост время :slight_smile:

Блин, я похоже в настройки давно не заходил :slight_smile: Там оказывается можно делать многое из того что нужно. И отключение прилипания и фиксированные ноды по клику/пробелы.

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

Починил, можно обновляться. Остальное неммножко отложу - лето всё-таки:)

А можно общую длину выводить, я просто этот инструмент частенько для трейса рек использую, полглядывая в гвр, совпадает длинна (+/- трамвайная остановка) или нет.

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

Дак линейка работает только по тому что уже нарисовано, еслиб линейка показывала длинну рисуемой в фастдро линии - сидел и не жужжжал бы.

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

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

Может хранить длину в какой-нибудь переменной, а плагин с линейкой сможет её брать и отображать стандартным для себя способом?

Да не к спеху.

Выложил новую версию. За сложное не брался. Добавления:

  1. (!!) Упрощение/изменение существующей линии теперь вызывается нажатием TT, а не сразу (линия должна быть выделена).
  2. Поменял толщину и раскраску линий. Толщина линии настраивается параметром fastdraw.linewidth, цвет упрощенной - fastdraw.color.simplified
  3. Тянучка работает сразу.
  4. Сделал выход без сохранения по ESC (с предупреждением).
  5. Вывел расстояние между соседними точками в метрах при нажатии кнопок вверх-вниз

Забавно, при максимальном упрощении замкнутая линия вырождается в точку + вей, состоящий из этой точки, включенной в него два раза. :smiley:

И, наверное, при упрощении до двух точек получается замкнутый вей «туда-обратно» по двум точкам.

Ага, я не заморачивался :smiley: Там проверок никаких нет. Исправлю когда-нибудь, ообенно если ещё способы создать некорректную линию найдёте.

Ага, все работает вроде. По поводу (5), имхо, лучше писать “=10 px (100 m)”, т.к. “or” может как-то неоднозначно восприниматься, типа 3 года или 100 тыс. пробега, в зависимости от того что раньше. И остался неприятный момент с прилипанием, даже при отключенном прилипании в настройках в режиме ведения линии с зажатой ЛКМ/пробелом все равно прилипает.
Возможно еще стоит отключить прилипание от узлов скрытых через фильтры, по крайней мере стандартное рисовние линий к ним не прилипает.

Тянучка на последнем сегменте когда вей замыкается не показывается ).

ОК, поправлю в следующем релизе

И то правда ) Странно, чего бы это оно. Программа подросла и начинает жить своей жизнью:)

Подсмотрю как там, сделаю.

Ох, уж эта тянучка… Я, кажется, понял, почему не сделал её сразу :slight_smile:

Очередной релиз FastDraw: 26522
Новое [по чьим запросам]:

  1. [FIX] Привязка к узлам не срабатывает, когда она отключена в настройках (Q). Больше нет привязки к невыделяемым узлам. [Aleksandr Dezhin]
  2. По кнопке I показывает информацию о нарисованной или упрощённой линии - длину, число точек, точки на км длины. [dkiselev]
  3. Не даёт сохранять прикольные линии by Hind :slight_smile:
  4. Вовремя рисуется тянучка и меняются курсоры. [Aleksandr Dezhin]

Ещё что заметите - хорошо) Ещё немного сил доводить плагин осталось.

Вот еще заметил, это не особо важно, но если получиться починить - будет здорово:

  1. Нет возможности перевесить шорткат на что-то отличное от T
  2. С пробелом вот какая заморочка получается, не уверен что это можно вообще пофиксить, но все равно пускай полежит здесь.
    а) При включенном add fixed point on spacebar, даже при зажимании, для ведения линии, первая точка все равно как фиксированная добавляется.
    б) Если переместить фокус на другой элемент управления и нажать spacebar, то при нажатии на пробел срабатывает этот элемент управления и ставиться точка.

Ну, вот что накопалось:

  1. Кнопку можно сменить, если очень хочется: http://postimage.org/image/14mgpirno/
    Внутренние (T, Q, I) действительно не меняются, но это, наверное, не страшно.
    2а) действительно тяжело исправить - нажатие от нажатия с движением действительно отличить трудно. РАзве что добавлять точку по отпусканию по координатам нажатия, но это, наверное, извращение… Просто первый раз надо в правильное место мышку наводить)
    2б) Починил, надеюсь никому пробел не понадобится :slight_smile: