[[TranslatedPages(revision=19)]] = Πρόσθετο -> Δημιουργία σεναρίων = [[Image(https://josm.openstreetmap.de/pluginicon/scripting.jar/images/script-engine.png,link=,48)]] [[PageOutline(2-4,,inline)]] == Σκοπός == Χρησιμοποιήστε το για να αυτοματοποιήσετε μικρές εργασίες για τις οποίες κανένα υπάρχον πρόσθετο δεν μπορεί να κάνει, π.χ. * πρόσθετοι ποιοτικοί έλεγχοι για τους οποίους δεν υπάρχουν διαθέσιμες δοκιμές επικύρωσης * αυτόματη εισαγωγή δεδομένων σε πολύ συγκεκριμένες περιπτώσεις (π.χ. ακολουθίες αριθμών κτιρίων) * εισαγωγή από προσαρμοσμένη μορφή αρχείου που δεν υποστηρίζεται από το JOSM * εξαγωγή σε προσαρμοσμένη μορφή αρχείου που δεν υποστηρίζεται από το JOSM == Πώς να εκτελέσετε σενάρια == Το [https://gubaer.github.io/josm-scripting-plugin πρόσθετο δημιουργίας σεναρίων] σάς επιτρέπει να εκτελείτε σενάρια εντός του JOSM. Μπορείτε να εκτελέσετε σενάρια από την κονσόλα ή από αρχεία. Εάν επιλέξετε αρχεία, τότε τα πιο πρόσφατα σενάρια θα εμφανιστούν στο μενού "δημιουργίας σεναρίων". είτε επίσης == Πώς να γράψετε τα δικά σας σενάρια == Παρακαλούμε ελέγξτε προσεκτικά και τους δύο πόρους: * https://gubaer.github.io/josm-scripting-plugin/doc/documentation.html - ακολουθήστε όλους τους συνδέσμους εδώ * https://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html - εξετάστε τι μπορούν να κάνουν όλες οι κλάσεις, οι ενότητες, τα mixins και οι χώροι ονομάτων. Για να γράψετε λειτουργικά σενάρια εκτός από το "josm.alert(josm.menu.length);" θα πρέπει να συνδυάσετε παραδείγματα από πολλές σελίδες, για παράδειγμα: * [https://gubaer.github.io/josm-scripting-plugin/apidoc/classes/JSAction.html Δημιουργήστε μια ενέργεια χρησιμοποιώντας την κλάση "JSAction"], και στη συνέχεια [https://gubaer.github.io/josm-scripting-plugin/doc/menu.html προσαρτήστε την στο μενού, όπως περιγράφεται στη σελίδα "Επέκταση του μενού και της γραμμής εργαλείων του JOSM"] == Λεπτομέρειες υλοποίησης == Το πρόσθετο περιλαμβάνει μια ενσωματωμένη μηχανή σεναρίου για Javascript βασισμένη στο Mozilla Rhino και ένα [https://gubaer.github.io/josm-scripting-plugin/apidoc/modules/josm.html Javascript API] για τα αντικείμενα της εφαρμογής JOSM.\\ Εναλλακτικά, μπορείτε να χρησιμοποιήσετε οποιαδήποτε γλώσσα σεναρίου που παρέχει μια μηχανή σεναρίου συμβατή με JSR-223 και συγκεκριμένα με [https://groovy-lang.org/index.html Groovy], [https://www.jython.org/ Python], ή [https://www.jruby.org/ Ruby].\\ [https://github.com/gubaer/josm-scripting-plugin Πηγαίος κώδικας στο GitHub]. == Σενάρια == === Σενάρια σε JavaScript === * https://gist.github.com/Rub21/feb83f57a727ac0d8a34 - Επέκταση συντομογραφιών (US) * https://gist.github.com/Rub21/47838797856566a8b6ba - Γράψτε ονόματα με κεφαλαία και εξαλείψτε το "name=S/N" * https://gist.github.com/Rub21/cc055320c925c855926e - επέκταση συντομογραφιών (Περού); [https://www.youtube.com/watch?v=Cpi_5dB1NLQ βίντεο επίδειξης] === Σενάρια σε Python === * [wikitr:/Help/Plugin/Scripting/Python] - διάφορα μικρά σενάρια που έχουν σκοπό να δείξουν πώς να κάνετε ένα πράγμα. * [wikitr:/Help/Plugin/Scripting/Python/SurfaceTypesOfRoutes] - (Ενδιαφέρον για ποδηλατικές διαδρομές, τόσο κυκλικές όσο και γραμμικές). Μικρό απόσπασμα κώδικα, αλλά παρουσιάζει ενδιαφέρουσες έννοιες και δημιουργεί αναφορές με βάση δεδομένα OSM. Δεν κάνει αλλαγές στα δεδομένα. * [wikitr:/Help/Plugin/Scripting/Python/RCN_Route_Validator] - Αυτό δεν είναι πλέον απλό σενάριο. Εκτελεί πολλές ενέργειες σε έναν πολύπλοκο τομέα (δίκτυα ποδηλατικών διαδρομών με αριθμημένους κόμβους), κάνει αλλαγές σε σχέσεις, γράφει δεδομένα σε αρχείο που μπορεί να επικολληθεί στο wiki. Αναλύει διαδρομές, αλλά και δίκτυα διαδρομών ή συλλογές δικτύων διαδρομών, ανάλογα με την επιλογή στο JOSM όταν εκτελείται το σενάριο. * [attachment:ticket:7991:AutoAddIntersections.py AutoAddIntersections] (needs [wikitr:/Help/Plugin/UtilsPlugin2 UtilsPlugin2]) - Προσθέτει ακροατή ουράς εντολών που εκτελεί την εντολή AddNodesAtIntersections του utilsplugin2 μετά από την εντολή Extrude. (Δείτε #7991)\\ Εκτελείται μία φορά ανά συνεδρία JOSM. == Ρυθμίσεις για προχωρημένους == Αναζητήστε την υποσυμβολοσειρά {{{scripting.}}}. {{{#!comment == Δείτε επίσης == }}} ---- Πίσω στη [wikitr:/Plugins Βοήθεια Πρόσθετων] \\ Πίσω στη [wikitr:/Help Βασική Βοήθεια]