(Erledigt) JOSM: Problem mit Defaults in Vorlagen

Hi,

ich habe Vorlagen nur selten benutzt und bin jetzt beim Schreiben eines Presets auf was gestoßen, was mir erstmal nicht einleuchtet.

Wenn ich eine Route (eine mit ref=“4711”) lade und eine Masterroute dazu per Vorlage anlege, dann steht im ref-Feld schon die “4711”. OK.

Speichere ich sie, dann gibt es kein ref.

Lösche ich das “4711”, dann gibt es ein ref … ohne Inhalt.

Trage ich irgendwas anderes ein, dann gibt es ein ref mit diesem Inhalt.

Versuche ich das mit einem eigenen Preset, dann haben ‘default=“”’ oder ‘use_last_as_default=“false”’ keine Auswirkung darauf.

Ist das das geplante Verhalten und ich hab es nur nicht kapiert?

Weide

Normalerweise verhalten sich Presets genau so, wie du es definiert hast :wink:
Bitte poste das Teil einfach (in einem Codeblock) und wir sehen weiter.

Gruss
walter

Das passiert in der internen Vorlage des JOSM.

Weide

Muss man dir eigentlich alles aus der Nase ziehen?

welche rel? welche Vorlage? und evtl nen screenshot?

Es ist bei mir mit jeder Routenrelation passiert, deshalb hatte ich keine angegeben. Z.B.:

Datei → Objekt herunterladen → 29259
Vorlagen → Transport → Öffentlicher Verkehr → Master-Route
Dann die Referenz editieren oder nicht editieren und dann “Neue Relation”
Ergebnisrelation ansehen und dann wegwerfen

Das ist im Prnzip schon richtig so. Wenn man ein vorhandenes Objekt auswählt und anschließend eine Vorlage öffnet, welche zu diesem Objekttyp passt, dann kann man die tags ändern und anschließend auf “Vorlage anwenden” klicken. Die verschiedenen tags sind dann logischerweise schon eingetragen, weil ja bereits vorhanden. Vorlagen für Relationen sind etwas spezieller, da sie zusätzlich zur eben beschriebenen Methode die Möglichkeit bieten alle ausgewählten Objekte in eine neue Relation zu packen. Dazu verwendet man die Schaltfläche “Neue Relation”. Die Neue Relation enthält dann logischerweise keine der zuvor angezeigten tags, da man ja in der Regel nicht die Tags der Mitglieder auch in der Relation haben will. Wenn man aber dort trotzdem was einträgt bzw. ändert, wird es dann auch in die Relation übernommen.

Also eine Relationen-Vorlage hat prinzipiell zwei verschiedene Funktionen: ausgewählte Relation ändern und neue Relation mit den ausgewählten Objekten als Mitglieder anlegen. JOSM kann vorher noch nicht wissen, was du vorhast. Entscheidend ist, welche Schaltfläche du am Ende drückst.

Für den Fall, dass du z.B. 3 Nodes auswählst und die Master-Routen-Vorlagen aufrufst, ist die “Vorlage anwenden”-Schaltfläche ausgegraut, weil die ausgewählten Objekttypen nicht passen. Welche Objekttypen zu einer Vorlage passen kann man oben in der Vorlage an den kleinen Bildchen (+mouseover) erkennen.

In deinem Fall, würdest du auf “Vorlage anwenden” drücken, würdest du aus der Routenrelation eine Masterrelation machen, was natürlich völliger Quatsch wäre. Die tags, die eine Vorlage immer beim Klick auf “Vorlage anwenden” setzt, verbergen sich hinter dem Bild mit den 3 Plus-Zeichen oben in der Vorlage.

Ich hoffe das war jetzt halbwegs verständlich? :slight_smile:

Aber ja, Danke!

Nee. Man kann soviel ändern wie man will: Wenn da am Ende derselbe Wert wie am Anfang steht, dann wird das Tag in der erzeugten Relation weggelassen. Dagegen taucht das Tag auf, wenn man den Inhalt löscht. Es ist so, als ob der Anfangswert des Feldes als neuer Default für diesen Key eingestellt wird. Oder ganz brutal im Beispiel: Man kann die 3 Varianten der Buslinie 123 zu jeder Gesamtlinie zusammenfassen … außer zur Buslinie 123. :slight_smile:

Weide

Im Prinzip wird jede Änderung übernommen. Änderst du ref=123 zu 1234 und wieder zurück zu 123, dann zählt es wie keine Änderung. Ein leeres tag wird dann, wenn man den Relationseditor schließt entfernt (insofern man nicht inzwischen einen Wert ergänzt hat.)

Um das Problem zu umgehen, könntest du:

  • Die Vorlage aufrufen, ohne zuvor ein Objekt ausgewählt zu haben und die Mitgleider dann im Relationseditor eintragen, oder
  • In der Vorlage anfangs erstmal nix ändern und diese im Relationseditor oben nochmal neu öffnen

Oder du erstellt ein JOSM-Ticket und schlägst ein verändertes Verhalten der Software vor.

Alles klar, Danke!