OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2011-08-08 10:53:39

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Заметил, что обсуждение съедает большой объём темы http://forum.openstreetmap.org/viewtopic.php?id=6513
и, в результате, многие старые актуальные запросы завалены далеко и глубоко. Вынесу в отдельную тему - если кому что изменить требуется или глюк заметили, или есть вопросы по использованию - можно писать сюда.

Описание плагина:
http://wiki.openstreetmap.org/wiki/RU:J … s/FastDraw
Назначение - рисование линий мышкой с последующим упрощением (леса, реки, дороги, границы).

Схема работы - мышка-Enter-Вверх/вниз-[Enter, смена инструента или новое рисование]

Можно упрощать существующие линии: Shift-F дважды при выбранной линии (активируется в настройках Q), потом вверх-вниз, Enter.
----
Выложил следующую версию. Новое (в скобках - авторы идей):
1) Галочки автофиксации узлов, добавленных кликом/пробелом (Ilis)
2) Галочка привязки к узлам в настройках (Q) (Hind)
3) Наглядное отображение интервала при нажатии вверх/вниз, автоскрытие тянучки, когда она не нужна.
4) (самое главное) Автосохранение линии при смене режима и начале рисования следующей (Felis Pimeja, Ilis). Enter можно жать один раз. А можно и два.
5) Настройка поведения Enter в (Q) - медленное автоупрощение, быстрое заданное упрощение и сохранение как есть (читерский пункт, буду удалять или хотя бы табличку допишу).

Надеюсь, всё работает. Жалобы и идеи прошу размещать в эту тему.

Last edited by akks (2015-06-15 19:14:21)

Offline

#2 2011-08-08 11:13:52

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

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

Я вот чего не понял - рисовал я рисовал, жмакаю по энтеру - линия упрощается, предположим меня результат упрощения не устраивает, что делать? Как вернуться к неупрощенному варианту и поменяв настройки/масштаб снова его вызвать?


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#3 2011-08-08 11:15:41

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,949

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

Подержать курсорную клавишу «Вверх».

Offline

#4 2011-08-08 11:23:09

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

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

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


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#5 2011-08-08 16:38:07

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

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

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

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

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

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

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

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

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


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


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#6 2011-08-08 17:16:44

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

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

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

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

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

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

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

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

Last edited by akks (2011-08-08 17:24:23)

Offline

#7 2011-08-08 17:33:16

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

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

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


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#8 2011-08-08 18:29:03

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Aleksandr Dezhin wrote:

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

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

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

Last edited by akks (2011-08-08 18:43:02)

Offline

#9 2011-08-08 18:33:15

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

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

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


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#10 2011-08-09 03:30:46

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

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

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

Offline

#11 2011-08-09 06:56:24

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

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

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


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#12 2011-08-09 06:58:50

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

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

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

Offline

#13 2011-08-09 07:00:23

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Ilis wrote:

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

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

Offline

#14 2011-08-09 07:09:39

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

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

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

Offline

#15 2011-08-09 07:54:04

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

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

Да не к спеху.


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#16 2011-08-09 11:39:52

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

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

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

Offline

#17 2011-08-09 11:43:37

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,949

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

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

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

Offline

#18 2011-08-09 11:48:15

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Hind wrote:

Забавно, при максимальном упрощении замкнутая линия вырождается в точку + вей, состоящий из этой точки, включенной в него два раза. big_smile
И, наверное, при упрощении до двух точек получается замкнутый вей «туда-обратно» по двум точкам.

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

Offline

#19 2011-08-11 03:20:18

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

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

akks wrote:

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

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

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

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

Last edited by Aleksandr Dezhin (2011-08-11 03:56:56)


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#20 2011-08-11 11:53:13

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Aleksandr Dezhin wrote:

Ага, все работает вроде. По поводу (5), имхо, лучше писать "=10 px (100 m)", т.к. "or" может как-то неоднозначно восприниматься, типа 3 года или 100 тыс. пробега, в зависимости от того что раньше.

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

Aleksandr Dezhin wrote:

И остался неприятный момент с прилипанием, даже при отключенном прилипании в настройках в режиме ведения линии с зажатой ЛКМ/пробелом все равно прилипает.

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

Aleksandr Dezhin wrote:

Возможно еще стоит отключить прилипание от узлов скрытых через фильтры, по крайней мере стандартное рисовние линий к ним не прилипает.

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

Aleksandr Dezhin wrote:

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

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

Offline

#21 2011-08-11 16:02:47

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

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

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

Last edited by akks (2011-08-11 16:05:03)

Offline

#22 2011-08-11 17:09:49

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

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

akks wrote:

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

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


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#23 2011-08-12 16:21:34

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Aleksandr Dezhin wrote:

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

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

Offline

#24 2011-08-23 05:47:48

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,949

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

Что-то у меня странное с Eps после нажатия Enter. Оно устанавливается в какие-то совершенно рандомные значения (каждый раз разное, но всегда слишком большое), хотя жестко задано startingEps = 5.0

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

Offline

#25 2011-08-23 06:38:07

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

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

Hind wrote:

Что-то у меня странное с Eps после нажатия Enter. Оно устанавливается в какие-то совершенно рандомные значения (каждый раз разное, но всегда слишком большое), хотя жестко задано startingEps = 5.0

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

Видимо, в настройках  стоит автоупрощение (Autosimplify) и Eps подгоняется под 20 точек на км.

Можно нажать Q и выбрать Enter key mode="Simplify with initial epsilon", тогда всегда будет упрощать с Eps=5 (и работать быстрее).

Offline

Board footer

Powered by FluxBB