Plug-in -> Scripting
Inhoud
- Doel
- Hoe scripts uit te voeren
- Hoe u uw eigen scripts kunt schrijven
- Details voor implementaties
- Scripts
- Voorbeeldscripts in Python
- Uitgebreide instellingen
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 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:
- Een actie maken met behulp van de klasse "JSAction", dan 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
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
Groovy, Python, of Ruby.
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); videodemonstratie
Voorbeeldscripts in Python
- Help/Plugin/Scripting/Python - Verschillende kleine scripts die zijn bedoeld om te illustreren hoe één ding te doen.
- Help/Plugin/Scripting/Python/SurfaceTypesOfRoutes (en) - (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
- Help/Plugin/Scripting/Python/RCN_Route_Validator (en) - 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.
- AutoAddIntersections (heeft 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.
.
Terug naar Plug-in Help Terug naar Help