Changes between Initial Version and Version 1 of Ru:Help/Plugin/Scripting


Ignore:
Timestamp:
2017-11-17T11:17:34+01:00 (8 years ago)
Author:
ak099
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ru:Help/Plugin/Scripting

    v1 v1  
     1[[TranslatedPages(revision=17)]]
     2= Модуль Scripting =
     3
     4[[PageOutline(2-4,,inline)]]
     5
     6
     7== Назначение ==
     8Используйте его для автоматизации небольших задач, для которых не готовых модулей, например:
     9
     10* дополнительные проверки данных, для которых нет доступных тестов валидатора
     11* автоматический ввод данных в специфических ситуациях (например, последовательная нумерация домов)
     12* импорт из формата файлов, не поддерживаемого JOSM
     13* экспорт в формат файлов, не поддерживаемый JOSM
     14
     15== Как выполнять сценарии ==
     16
     17Модуль [https://gubaer.github.io/josm-scripting-plugin scripting] позволяет запускать сценарии в JOSM.
     18
     19Их можно запускать из консоли или из файлов. Если вы выберет файлы, то в дальнейшем сценарии будут появляться в меню "Scripting". См. также
     20
     21== Как писать собственные сценарии ==
     22
     23Внимательно ознакомьтесь с обоими ресурсами:
     24* http://gubaer.github.io/josm-scripting-plugin/doc/documentation.html - следуйте по всем сслыкам здесь
     25* http://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html - узнайте, для чего нужны классы, модули, примеси (mixins) и пространства имён.
     26
     27Чтобы писать более функциональные сценарии, чем "josm.alert(josm.menu.length);", вам следует комбинировать пример с различных страниц, например:
     28* [http://gubaer.github.io/josm-scripting-plugin/apidoc/classes/JSAction.html Создайте действие с помощью класса "JSAction"], затем добавьте его в меню, как показано на странице [http://gubaer.github.io/josm-scripting-plugin/doc/menu.html "Extending the JOSM menu and the JOSM toolbar"]
     29
     30== Детали реализации ==
     31
     32Модуль включает встроенный движок сценариев для Javascript, основанный на Mozilla Rhino и
     33[https://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html Javascript API] для объектов приложения JOSM.\\
     34Или же вы можете использовать любой язык сценариев, предоставляющий совместимый с JSR-223 движок, в частности,
     35[http://groovy.codehaus.org/ Groovy], [http://www.jython.org/ Python] или [http://jruby.org/ Ruby].\\
     36
     37[https://github.com/gubaer/josm-scripting-plugin Исходный код на GitHub].
     38
     39== Сценарии ==
     40=== Сценарии на JavaScript ===
     41
     42* https://gist.github.com/Rub21/feb83f57a727ac0d8a34 - расширяет аббревиатуры различных типов дорог до полного названия (для США)
     43* https://gist.github.com/Rub21/47838797856566a8b6ba - изменяет регистр имён и убирает "name=S/N"
     44* https://gist.github.com/Rub21/cc055320c925c855926e - расширяет аббревиатуры (для Перу); [https://www.youtube.com/watch?v=Cpi_5dB1NLQ демонстрационное видео]
     45
     46=== Сценарии на Python ===
     47
     48* [wiki:Help/Plugin/Scripting/Python] - Различные небольшие сценарии, иллюстрирующие, как выполнить какое-нибудь действие.
     49* [wiki:Help/Plugin/Scripting/Python/SurfaceTypesOfRoutes] - (Интересно для веломаршрутов, кольцевых и линейных). Короткий кусок кода, но иллюстрирует интересные концепции и отчёты по данным OSM. Не вносит изменений в данные
     50* [wiki:Help/Plugin/Scripting/Python/RCN_Route_Validator] - Это уже не самый тривиальный сценарий. Он делает некоторые сложные вещи ([[http://wiki.openstreetmap.org/wiki/RU:Велосипедные маршруты|сети велосипедных узлов]] с нумерованными узлами), вносит изменения в отношения, выполняет запись в файл, который можно будет вставить в wiki. Анализирует маршруты, а также сети маршрутов или коллекции сетей маршрутов, в зависимости от того, что выделено в JOSM при запуске сценария.
     51* [attachment:ticket:7991:AutoAddIntersections.py AutoAddIntersections] (требует наличия [wiki:Plugin/UtilsPlugin2 UtilsPlugin2]) - Добавляет обработчик очереди команд, который выполняет команду AddNodesAtIntersections модуля utilsplugin2 после обнаружения команды Extrude. (См. #7991)\\
     52 Запускается один раз в сеансе JOSM.
     53
     54== Расширенные настройки ==
     55
     56Выполните поиск по подстроке {{{scripting.}}}
     57
     58== Смотрите также ==
     59* [wiki:/Ru:Plugins Документация к модулям]
     60
     61----
     62Назад к [wiki:/Ru:Help Основной странице справки]