Плагин CommandLine для jOSM (окружности, дуги и т.п. + свои команды)

Но это то, что хотелось бы увидеть тем редакторам, кто придёт в ту область после.
Потому что разлеплять линии — не очень приятное занятие.

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

Новая команда: Regexp.

Простейший поиск и замена по регэкспу (в т.ч. по обычным строкам). Можно быстро массировано заменять «ул.» на «улица» (выделив предварительно все объекты по Ctrl+A), и таки да, кавычки-лапки на ёлочки (искать "(.*?)", заменять на «\1» ).

Если в выражениях используется символ ", его нужно экранировать, так как он используется при передаче параметра через системную командную строку.

С кодировками проблем вроде бы быть не должно. Зато вылезло неудобство: оказывается, в коммандлайне не вставляется и не копируется текст. Буду исправлять.

А ещё люди внезапно обнаружат проблемы с восклицательным знаком. Не надо так делать. В нормальных языках есть функции типа escapeshellarg, неужели в Яве нет?

А в Java она не нужна - вместо конструирования полной строки запуска надо просто использовать методы запуска с отдельной передачей параметров.

Я чего-то не знаю? Какие еще проблемы с восклицательным знаком? Только что проверил, всё работает.

Я не трогал плагин, так что непонятно, при чем тут Java.
Плагин я поправлю немного позже.

У меня, возможно, плагин не работает. По крайней мере, при наборе команды, варианты команд не выводятся.
Отрабатывают команды, или нет, сказть не могу, т.к. Питона нет.
Система: Win XP 32, Loaded CommandLine, version 25200
Пробовал вручную обновлять, jar файлы идеентичны, ничего не изменилось.

PS: Стандартный набор команд установлен, но как уже писал, Питона нет.

Давайте логи загрузки JOSM при запуске командой навроде java -jar -Xmx1024M “josm-latest.jar”

Там должно быть много строчек вида:
file:///*/AppData/Roaming/JOSM/plugins/CommandLine/arc.xml

Проблемы возникают там, где их ждут меньше всего:

shurik@pc3 ~ $ echo !
!
shurik@pc3 ~ $ echo \!
!
shurik@pc3 ~ $ echo "\!"
\!
shurik@pc3 ~ $ echo "!"
bash: !: event not found

Hind, нет в логах этих строк, весь лог довольно короткий и умещается в 940 байт
Есть только одно упоминание о CommandLine, факт его загрузки.


...
???????? ?????? 'PicLayer' (?????? 25219)
Silent shortcut conflict: 'menu:PicLayer' moved by 'menu:Imagery' to 'Alt+B'.
???????? ?????? 'CommandLine' (?????? 25200)
???????? ?????? 'RoadSigns' (?????? 25192)
???????? ?????? 'buildings_tools' (?????? 25469)
...

Отчего коммандлайн может не найти файлы с командами? Все лежит где надо:

c:\Documents and Settings\user\Application Data\JOSM\CommandLine\

Не там.
Посмотри внимательнее. :3

Hind, мы смотрим на разные Вики по одной ссылке?

%appdata%\JOSM\plugins\CommandLine\

млин, понял, не заметил plugins, хотя, эту папку вроде сам плагин создал…

Поставил “пинтон”, плагин и команды. Загрузился:

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-04-14 01:31:50
Last Changed Author: bastiK
Revision: 4021
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-04-13 22:43:46 +0200 (Wed, 13 Apr 2011)
Last Changed Rev: 4021

GET http://api.openstreetmap.org/api/capabilities... OK
Соединение с http://api.openstreetmap.org/api установлено используя протокол 0.6

загрузка модуля 'openstreetbugs' (версия 25664)
загрузка модуля 'PicLayer' (версия 25219)
Silent shortcut conflict: 'menu:PicLayer' moved by 'menu:Imagery' to 'Alt+A'.
загрузка модуля 'CommandLine' (верси  25829)
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/arc.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/bezier.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/circle.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/copy.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/cut.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/fillet.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/mirror.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/move.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/offset.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/regexp.xml
file:///C:/Program%20Files/josm/JOSM/plugins/CommandLine/replace.xml

Попытался сделать круг. Результат:

Silent shortcut conflict: 'subwindow:conflict' moved by 'menu:Commands' to 'Alt+Shift+C'.
python circle.py 37.621895969751904,55.75326683180708 10 12
java.io.IOException: Cannot run program "python" (in directory "C:\Program Files\josm\JOSM\plugins\CommandLine"): CreateProcess error=2, ?? ??????? ????? ????????? ????
        at java.lang.ProcessBuilder.start(Unknown Source)
        at CommandLine.CommandLine.runTool(CommandLine.java:461)
        at CommandLine.CommandLine.loadParameter(CommandLine.java:399)
        at CommandLine.CommandLine$1.processKeyEvent(CommandLine.java:116)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)

        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(UnknownSource)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(UnknownSource)
        at java.awt.EventQueue$2.run(Unknown Source)
        at java.awt.EventQueue$2.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(UnknownSource)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=2, ?? ??????? ????? ????????? ????
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(Unknown Source)
        at java.lang.ProcessImpl.start(Unknown Source)
        ... 36 more
Ошибка выполнения скрипта: python circle.py 37.621895969751904,55.75326683180708 10 12
Cannot run program "python" (in directory "C:\Program Files\josm\JOSM\plugins\CommandLine"): CreateProcess error=2, ?? ??????? ????? ????????? ????
[Ljava.lang.StackTraceElement;@bc8690[/code]

bopoh13, прописать python в системные переменные. Было в начале топика.

*path = C:\Python27*
Вот это? Так эффекта нуль. Из коммандной строки загружается, в josm - ничего не происходит (правда, уже не висит).

python circle.py 37.621895969751904,55.75326683180708 10 12
Traceback (most recent call last):
  File "circle.py", line 25, in <module>
    import projections
ImportError: No module named projections

Добавлено:
там в папке с XML-ками нужные файлы projections.py и OsmData.py были )) Все работает, спасибо! :wink:

Hind, спасибо за плагин. Теперь osmplug для “кетчупа” просто не нужен (да простит меня vvoovv).
ЗЫ: Буду думать, чем заменить “пинтон”.

Под питон 2.7 не проверялось. Гарантированно работает только на 2.5 и 3 питонах. :3
Во всяком случае, я не представляю, как питон может не найди projections, когда он лежит в одной папке с circle.py

вот в багрепорт http://img857.imageshack.us/img857/9359/bugw.png после выполнения arc WinXP

bopoh13, глянь здесь http://wiki.openstreetmap.org/wiki/RU:JOSM/Plugins/CommandLine#FAQ

ErshKUS, это не показатель. У меня запускался “пинтон” через командную строку ))
Сейчас все работает, я в посте #71 написал.

Добавлено:

Просто проблемы с кодировкой. У меня тоже самое. Ничего страшного :slight_smile:

Понятно что с кодировкой, но не приятно, ведь он что то пишет, может даже что то нужное