JOSM Scripting: Gibt es eine Basis-Anleitung für Python?

Moin,

ich würde in JOSM gerne mit Skripten arbeiten und dachte dabei an Python. Allerdings kriege ich nicht so richtig raus, wie ich das aufsetze. Man findet zwar Skript-Beispiele und auch Hinweise auf jython, aber wie ich das in das Plugin integriert bekomme, weiß ich nicht. Ich könnte vermuten und probieren, habe aber wenig Lust auf try & error ;)

Kennt jemand die Schritte vom “leeren” Scripting-Plugin bis hin zur Ausführung eines ersten Skriptes?

Ich hab leider keine Basis-Anleitung für dich, aber ich glaube um mit Python in JOSM zu scripten, muss man Python schon sehr mögen ;) Jython unterstützt nur Python 2.7 und ich wüsste auch nicht, wie man third-party Module einfügt.

Falls du es trotzdem probieren möchtest, ist das hier vermutlich der beste Ansatz: Using JSR 223 | JOSM Scripting Plugin

Danke. Also die Sprache ist mir eigentlich egal, zumal es nur um ganz simple “Makros” geht, die auf den Eigenschaften ausgewählter Objekte arbeiten. Vermutlich wäre es sogar am einfachsten mit diesem Graal-Gedöns, aber auch dabei landet man am Ende auf irgendeiner GitHub-Seite und muss sich offenbar irgendwas selber bauen. Das ist mir aber alles ehrlich gesagt zu achtziger. Heutzutage sollte sowas einfacher gehen.

Die verlinkte Seite kannte ich, aber spätestens bei der nächsten Verlinkung landet man auf seit Jahren “abgelaufenen” Seiten, die einem auch nichts mehr nützen. Alles ziemlich gruselig. Offenbar ist die Zielgruppe einfach zu klein, um sowas zu pflegen.

Hast Du mal ein Beispiel was Du machen willst?

Einfache Sachen (Tag hinzufügen, Tag ändern) geht ja ohne Macro bereits.

Die Frage hätte ich bestimmt auch gestellt ;) Aber ein gewisses Maß an Logik ist schon erforderlich. Es waren einige Dinge, die immer mal wieder um die Ecke kamen. Spontan fällt mir z.B. der Abgleich mehrere Objekte ein, die uneinheitliche Inhalte getaggt haben. Im einfachsten Falle sind es zwei, aber wenn man beide auswählt, ist die Anzeige und Bearbeitung der Tags im Standard-Dialog ja kaum sinnvoll möglich. Ein tabellarischer Ansatz würde da helfen (ähnlich wie bei der Konfliktlösung vielleicht, wo man hin und her schieben kann). Aber mit einem Makro kann man Standards auch über mehr als 2 Objekte einfacher und schneller auflösen, vor allem ohne Klick- oder Tippfehler. Ein anderer Bereich betraf das 3D-Building-Tagging. Das ist ja so schon fummelig genug. Bei sowas könnte ein Makro auch manchmal helfen.

Im Grunde liest man also die Eigenschaften der ausgewählten Objekte aus, verwurstet sie nach bestimmten Kriterien und schreibt sie wieder zurück.

Falls KI auch in Frage kommt, es gibt ja mittlerweile MCP Schnittstellen.

Vermutlich wäre es am einfachsten, sich kurz mit Plugin-Entwicklung auseinanderzusetzen: DevelopersGuide/DevelopingPlugins – JOSM

Wenn man bereit ist, mit KI zu arbeiten, sollten kleinere Sachen bestimmt auch ohne große Java-Kenntnisse möglich sein.