Die JOSM Autovervollständigung ist sub-optimal

Ich möchte hiermit einmal über die Autovervollständigung in JOSM ablästern insb. im Dialog “Adressvorlage”.

Beispiel: Georgstraße. Es erscheinen successive folgende Vorschläge:

  • G → GDF SUEZ E&P Deutschland GmbH
  • Ge → Geeste
  • Geo → Georg-Klasmann-Straße
  • Georgs → Georgsdorf
  • Georgst → Georgstraße

D.h. es wird bei der Sortierung der Vorschlagsliste weder die räumliche Nähe des Objektes noch die Art (“highway”) berücksichtigt.

Dies nur als Anregung, falls die JOSM Devs hier mitlesen… :wink:

2 Likes

Außerdem wäre die Frage, ob im Feld “Hausnummer” eine Autokomplettierung überhaupt Sinn macht.

Da ist es mir schon passiert, dass er aus einer “12a” eine “12a,12b” gemacht hätte, wenn ich nicht aufgepasst hätte. :wink:

1 Like

Die Problemen mit ID autofill sind gleich wenn nicht großer, also aufgepasst.

(bestimmt mit Straßen zollten natürlich nur Straßennamen vorgeschlagen werden. Ich mag Vespucci, seit kurzem im Gebrauch. Präsentiert eine liste ‘while typing’ woraus man wählen kann, aber tut kein autofill)

Ich hatte da schonmal ein ticket aufgemacht: #11349 (addr:street autocompletion is broken) – JOSM
Aber das ist wohl wieder nicht so einfach zu programmieren… sonst hätte es jemand schon geschafft.

2 Likes

Ich habe das noch nie verwendet. Normalerweise kopiere ich die tags von irgendeinem bereits vorhandenen Objekt.

Soweit ich weiss, werden alle Vorlagen nur in der defaultpresets.xml “definiert”. Wenn ich das richtig sehe, dann kann man da gar nicht einzelnen Vorlagen eine Spezialbehandlung mit Java-Code zuordnen.

Hallo,

wie öffne ich das Dialogfeld? Gibt es ein Tastenkürzel dafür?

1 Like

Ich hab’s mir in die Symbolleiste gelegt und kann es mit F10 aufrufen.

Danke, das mit der Symbolleiste macht Sinn. :+1:

Ich habe ein ähnliches Problem beim Mappen von (Rad-)Wegweisern. Da stört es mich oft, dass eher der längste passende Ausdruck raus kommt als der kürzeste. Siehe #24516 (Improve Autocompletion) – JOSM

Zu dem Beispiel mit den Straßennamen fällt mir noch ein, dass man gerne mal drauf reinfällt, wenn es z.B. eine Mühlenstraße und einen Mühlendamm gibt und bei der Vervollständiegung dann der falsch Name rauskommt. Kann man leicht übersehen. Vielleicht wäre es auch da besser, erst mal nur “Mühlen” zu vervollständigen?
Edit: Oder, wenn z.B. nach Eingabe von “Mü” der Begriff “Mühlendamm” vorgeschlagen wird und ich tippe dann noch “h” für “Müh”, das JOSM dann den angezeigten Begriff zu “Mühlen” verkürzt oder vielleicht zwischen den passenden Alternativen wechselt?

kann ich auch bestätigen, ich glaube das ist vielleicht ein Bug, der früher nicht da war (bin aber nicht ganz sicher). Z.B. obwohl parking:left noch fehlt wird mir erstmal parking:left:restriction:conditional vorgeschlagen und ich muss das ganze Zeug wieder löschen.

1 Like

Ja, Ursache ist das JOSM immer die zuletzt ergänzten Tags als wahrscheinlichsten Match nimmt. Das ist meist gut, aber bei den langen Prefixes eher störend. Ich experimentiere mit Lösungen…

In dem Augenblick, wo Du das a eingibst, ist es für JOSM keine Zahl sondern Text. Solange nur Nummern dastehen greift die Einstellung autocomplete.dont_complete_numbers mit default true. Ob es eher besser ist, den längsten passenden String anzubieten oder den kürzesten ist tatsächlich schwer zu entscheiden. Beim Schlüssel building wäre es lästig, wenn jedesmal nach der Eingabe von “h” erstmal “hut” angeboten würde anstelle von “house”.
Aber ich könnte mir vorstellen, dass man bei Begriffen, die mit eine Zahl anfangen, eher immer den kürzesten Match haben will. Werde das mal versuchsweise bei mir implementieren…

1 Like

Beim Schlüssel building wäre es lästig, wenn jedesmal nach der Eingabe von “h” erstmal “hut” angeboten würde anstelle von “house”.

vielleicht könnte man bei bis zu 3 buchstaben (oder 2 oder 4?) den zuletzt eingegebenen key vorschlagen und danach den kürzesten der passt? Dann könnte man sich “vorantasten” was m.E. schneller geht als zu löschen, insbesondere wenn der key sehr lang ist

Genau darüber habe ich auch schon nachgedacht. Die Anzahl müsste wohl konfigurierbar sein.

1 Like

Eine weitere Idee: Eine Liste mit (Teilen von) keys, für die bei der Autovervollst. lieber der kürzeste passende Wert angezeigt werden soll, jeweils einmal für den Schlüssel und den Wert.
Dann würde man z.B. “addr:housenumber” in die zweite Liste packen und “dir*” oder “sidew*” in die erste.

1 Like

Die meisten Vorschläge kommen vermutlich vom “NSI”, wenn der aktiviert ist.
Könnte man für ways, die schon einen highway=* tag haben, den “NSI” für die Namen-Vervollständigung ignorieren?

Oder andersrum, den NSI nur für Objekte hernehmen, die

  • neu angelegt sind und noch gar keine Tags haben, also z.B. wenn jemand einen neuen Rewe mappen will

  • oder schon ein passendes Haupt-Tag haben wie shop=supermarket

?

Ich habe mich mit dem NSI (Name Suggestion Index) noch nie beschäftigt. Aber anscheinend kann man das irgendwie als Vorlage mit einbinden?

Ja, es gibt ein Preset: https://raw.githubusercontent.com/osmlab/name-suggestion-index/main/dist/presets/nsi-josm-presets.min.xml
Wie das ganze aufgebaut ist, steht hier: Name Suggestion Index - OpenStreetMap Wiki
Für das einheitliche tagging von Ketten aller Art ist der schon nützlich.

Im oben genannten Ticket wird von Marcello ein guter Vorschlag gemacht:

add an attribute autocomplete_template to the preset item, that uses the template engine and its syntax to find additional autocompletion values. On addr:street you would put:

  autocomplete_template="!{(highway:) (name:) inview '{name}'}"

und Skyper meint dazu:

inview is nice but I sometimes need a bigger radius while zoomed in. Setting an explicit radius/bbox would be nice.

Für die Adress-Felder wäre das genial, wenn es umsetzbar wäre. Wahrscheinlich könnte man die Lösung auch bei anderen Feldern anwenden.