[[TranslatedPages(revision=19)]] = Plug-in -> Scripting = [[Image(https://josm.openstreetmap.de/pluginicon/scripting.jar/images/script-engine.png,link=,48)]] [[PageOutline(2-4,Inhoud,inline)]] == Doel == Gebruik het om kleine taken, waarvoor geen bestaande plug-in beschikbaar is, te automatiseren, d.i. * aanvullende kwaliteitstesten waarvoor geen testen van Validatie beschikbaar zijn * automatisch invoeren van gegevens in zeer specifieke situaties (d.i. reeksen van huisnummers) * importeren van een aangepaste bestandsindeling die niet wordt ondersteund door JOSM * exporteren naar een aangepaste bestandsindeling die niet wordt ondersteund door JOSM == Hoe scripts uit te voeren == De [https://gubaer.github.io/josm-scripting-plugin plug-in Scripting] stelt u in staat scripts uit te voeren binnen JOSM. U kunt scripts uitvoeren vanuit een console of vanuit bestanden. Als u voor bestanden kiest, dan zullen de laatst gebruikte scripts zijn vermeld in het menu "Scripting". Bekijk ook == Hoe u uw eigen scripts kunt schrijven == Inspecteer nauwkeurig beide bronnen: * https://gubaer.github.io/josm-scripting-plugin/doc/documentation.html - volg hier alle links * https://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html - scan wat alle klassen, modules, mixins en namespaces kunnen doen. Voor het schrijven van meer functionelere scripts dan "josm.alert(josm.menu.length);" zou u voorbeelden vanaf verschillende pagina's moeten combineren, bijvoorbeeld: * [http://gubaer.github.io/josm-scripting-plugin/apidoc/classes/JSAction.html Een actie maken met behulp van de klasse "JSAction"], dan [http://gubaer.github.io/josm-scripting-plugin/doc/menu.html verbinden aan het menu zoals is weergegeven op de pagina "Extending the JOSM menu and the JOSM toolbar"] == Details voor implementaties == De plug-in bevat een ingebedde scriptingmachine van Javascript, gebaseerd op Mozilla Rhino en een [https://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html Javascript API] voor de JOSM applicatie-objecten.\\ Als alternatief kunt u een willekeurige scripttaal gebruiken die een JSR-223 compatibel scriptingmachine verschaft, in het bijzonder [https://groovy-lang.org/index.html Groovy], [https://www.jython.org/ Python], of [https://www.jruby.org/ Ruby].\\ [https://github.com/gubaer/josm-scripting-plugin Broncode op GitHub]. == Scripts == === Scripts in JavaScript === * https://gist.github.com/Rub21/feb83f57a727ac0d8a34 - Expand abbreviations (US) * https://gist.github.com/Rub21/47838797856566a8b6ba - Capitalize names and eliminate "name=S/N" * https://gist.github.com/Rub21/cc055320c925c855926e - expand abbreviations (Peru); [https://www.youtube.com/watch?v=Cpi_5dB1NLQ videodemonstratie] == Voorbeeldscripts in Python == * [wikitr:/Help/Plugin/Scripting/Python] - Verschillende kleine scripts die zijn bedoeld om te illustreren hoe één ding te doen. * [wikitr:/Help/Plugin/Scripting/Python/SurfaceTypesOfRoutes] - (Interessant voor fietsroutes, zowel rondgaande als lineaire). Kort stukje code, maar illustreert enkele interessante concepten en rapporten op gegevens van OSM. Wijzigt de gegevens niet * [wikitr:/Help/Plugin/Scripting/Python/RCN_Route_Validator] - Dit is geen triviaal script meer. Het doet heel veel in een gecompliceerd speelveld (netwerken van fietsknooproutes met genummerde knopen), maakt wijzigingen aan relaties, schrijft naar ene bestand dat in de wiki kan worden geplakt. Analyseert routes, maar ook netwerken van routes of verzamelingen van netwerken van routes, afhankelijk van de selectie in JOSM toen het script werd uitgevoerd. * [attachment:ticket:7991:AutoAddIntersections.py AutoAddIntersections] (heeft [wikitr:/Help/Plugin/UtilsPlugin2 UtilsPlugin2] nodig)\\ Voegt een luisteraar aan de opdrachtregel toe die de opdracht AddNodesAtIntersections van Utilsplugin2 uitvoert na het tegenkomen van de opdracht Extrude. (Zie #7991)\\ Eénmaal per sessie van JOSM uit te voeren. == Uitgebreide instellingen == Zoek naar de subtekenreeks {{{scripting.}}}. {{{#!comment == Zie ook == }}} ---- Terug naar [wikitr:/Help/Plugins Plug-in Help] Terug naar [wikitr:/Help Help]