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

Ссылка на вики сейчас ведёт на master.zip с гитхаба, и в инструкции сказано просто «распаковать».

Тогда уж проще отдельный реп создать для сторонних команд.

Я модули для команд не использую, т.к. не хочется заставлять пользователя что-то ставить сверх питона — большинство из них не смогут этого сделать.
А кроме команд для CL, я на питоне не писал. Так что вряд ли подскажу. :3

Сделал небольшие упрощения Regexp, две команды:

Tagcopy - копирует значения из одного тега в другой тег, предыдущее значение перетирается. Обычно такая задача возникает при нормализации языка name:?? → name

Tagchange - тот же Regexp, но работает только с одним явно заданным тегом, а search-replace делает только в значениях.

http://rusfolder.com/40376824

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

Не уметь.

нет желания попробовать написать на JavaScript для плагина Scripting ? :wink:

У меня этот плагин не работает нормально.

мне только что прислали письмо с предложением обновить Scripting, что-то там починили - у меня тоже с ним были проблемы…

новое содержимое Address2

там что нить добавилось? или старое починили?

Починили работу с кадастром.

Сделал скрипт Ellipse для CommandLine по заявкам. Заодно выкладываю Replace2 - замена геометрии без поворота. Всё тут: http://ge.tt/4fL1XB32?c

Багфикс, поддержка запятых (luiswoo просил)

  • Табы заменены на 4 пробела, прошу и далее придерживаться таких отступов (PEP8)

PS: общую Git репу бы для всех плагинов комманд лайна…

Спасибо.
Табы там из исходного скрипта, я обычно стараюсь максимально сохранить синтаксис исходного файла. #малоличо

Вот я тоже хотел об этом написать. Только я хотел предложить вписывать ссылки на свои скрипты в вики про CommandLine, но репа - явно более прогрессивный вариант.
Могу сделать на github-е, но я не очень рублю в Git-е…
Прошу Hind-а как-то прокомментировать, ИМХО, логичнее, если репа будет его.

Все тактично промолчали, а репозиторий-то уже давно есть.
Залил свои скрипты, нарисовав к ним иконки и ещё spline.png. Pull request.
Hind, прошу сделать merge или как-нибудь прокомментировать.

Также я вижу

  1. Pull request от Xmypblu с grid2m и wipe был закрыт без merge
  2. Файл от chnav (Tagcopy и Tagchange) уже удалён
  3. Addres2.py от “Семён Семёнов” (без XML-ки?)
    В общем я готов позаниматься репозиторием сторонних скриптов, как минимум в своём форке собрать всякое.
    У кого что есть? :slight_smile:

P.S. Ещё ща попробую сделать скрипт tagcalc - для конкатенации имеющихся тэгов и фикс.строк в новый тэг

Добавил скрипт tagcalc в свой репозиторий
Позволяет собирать тэги объектов в новый тэг по формуле. Пока возможна только конкатенация.

  1. Легко скопировать тэг в новый
  2. Можно проставить, например, name := Высота #tag=ele#
    При использовании с Regexp и Selection можно накручивать довольно сложные вычисления на тэгах.
    Если кому-то интересно - пишите.

OverQuantum, дал тебе полный доступ к репозиторию команд :3

По Replace2 — имхо, правильнее изменить Replace, добавив параметр «автоматически повернуть». Либо назвать Replace, а старый — ReplaceWithRotation.

“Ух, ответственность” (c)
Спасибо, буду действовать аккуратно.

Лишний параметр - лишнее действие для всех пользователей. Переименовал свой в “Replace2 (no rotation)”.
Добавил ещё скрипты от Xmypblu, подкорректировав их.
Залил всё в master, можно тестировать.

Спасибо. Только Implode некорректно отменяется. Там сначала удаляются точки, а потом вей — а так делать нельзя. :3
Да, автор команд не должен бы о таком задумываться, и надо править сам плагин. Но пока что есть то, что есть.

Поправил в OsmData.py вот так:

    # Deleting
    for relation in self.relations.items():
      if relation[1].get(ACTION) != DELETE:
        continue
      targetStream.write(self.xmlrelation(relation))
    for way in self.ways.items():
      if way[1].get(ACTION) != DELETE:
        continue
      targetStream.write(self.xmlway(way))
    for node in self.nodes.items():
      if node[1].get(ACTION) != DELETE:
        continue
      targetStream.write(self.xmlnode(node))
    for text in self.comments:
      targetStream.write("<!--" + text + "-->\n")

Вроде ошибка перестала выпадать. Буду ещё тестировать, но если сразу видишь что это некорректно - сообщи.

P.S. Ещё до меня сегодня дошло, что разные xml-ки могут дёргать один скрипт с разными параметрами, поэтому я уберу circle.py и replace2.py, сделаю Arc с осями и ещё свой path_ortho затащу. :slight_smile:

Спасибо.
О, точно, а я и забыл, что интерфейс команд отделен от реализации. :3