Ortsname steht gleichzeitig für town und village - Nominatim gibt falsche Ortsangabe aus

Die Gemeindebezeichnung Bad Zwischenahn steht gleichzeitig auch für die Bezeichnung des Kernortes (village), diese ist derzeit aber nicht doppelt gepflegt- da es komisch aussehen würde jemand es schnell wieder entfernen würde.

Bei der Nominatim-Ausgabe wird daher für den Kernort Bad Zwischenahn immer eine falsche Ortsangabe (village Rostrup) ausgegeben, obwohl es sich um den Kernort “Bad Zwischenahn” handelt:

https://nominatim.openstreetmap.org/ui/details.html?osmtype=N&osmid=473666237&class=amenity

Optimal wäre eigentlich, wenn für Place beide Tags (town und village) angegeben werden könnten:

https://www.openstreetmap.org/node/30239908

Kann man das umsetzen? Oder ist es richtig, die gleiche Bezeichnung ein zweites Mal als place:village anzulegen?

Danke für eine Rückmeldung!

Eine Gemeinde ist eine administrative Gliederungsebene und wird mit boundary=administrative gemappt. Place ist für Orte (Siedlungen).

Ob Bad Zwischenahn in Deutschland als town gemappt wird weiß ich nicht, als Stadt gilt es wohl nicht, scheint aber schon ein lokales Zentrum in der Gegend zu sein, mit Gymnasium etc. und hat knapp 30.000 Einwohner? (vermutlich mit allen Dörfern die dazugehören?)

Einen doppelten Wert (eventuell kommagetrennt) also place=village;town ist für Schlüssel place=* nicht üblich. Dies wird aber z.B. bei Sportanlagen für verschiedene Sportarten gemacht (sport=soccer;basketball;volleyball).

Fürs Erfassen von Gemeindedaten gibt es noch place=municipality. Dies wird dann als Mitglied in die Gemeindegrenzrelation aufgenommen und als Rolle “label” definiert. Also aktuell sieht die Gemeinderelation von Bad Zwischenahn so aus:
https://www.openstreetmap.org/relation/1186777

Als Beispielvorlagen hier zwei Gemeinden bei denen es place=municipality gibt und als label in die Relation aufgenommen wurde:
Pinneberg: https://www.openstreetmap.org/relation/443487
Wedemark: https://www.openstreetmap.org/relation/1177823

In wie fern diese Umsetzung die Nominatim-Ausgabe für dein Beispiel beeinflusst kann ich nicht sagen, müsste man mal ausprobieren…

Also, prinzipiell kommt Nominatim mit place=municipality klar, allerdings ist die Lage doch etwas komplizierter.

In Deutschland gibt es grob gesagt zwei Arten von “gewachsenen” Gemeinden.

Zum einen sind da Städte oder grössere Dörfer, die mit den Jahr(hunderten) die umliegenden Dörfer aufgesaugt haben. Dabei haben die Dörfer ihre Unabhängigkeit mehr oder weniger verloren und sind zu Stadtteilen geworden. Gemappt ist das dann oft trotzdem als place=village, weil das ganze halt noch dörflich aussieht.

Zum anderen gibt es die Gemeinden, die aus Fusionen mehrerer mehr oder weniger gleichgrosser Dörfer entstanden sind. Die Gemeinde ist dann mehr ein administratives Konstrukt. Sozial gesehen sind die Dörfer immer noch klar getrennt. Auch hier sind die Dörfer als place=village gemappt.

Warum das jetzt wichtig ist? Nominatim versucht, wenn es die Adressen zusammenbaut, herauszufinden, welcher Adressteil als “Stadt”, welcher als “Stadtteil” etc. zu verwenden ist. Im ersteren Fall würde man eher den Hauptort als “Stadt” klassifizieren und die eingemeindeten Dörfer als “Stadtteil”. Im zweiten Fall sind eher die Dörfer selbst der Adressteil “Stadt” und die administrative Gemeindename interessiert eigentlich keinen.

Im Augenblick wird von Nominatim alles, was mit place=municipality klassifiziert ist, als so eine administrative Gemeinde betrachtet. Das heisst, alle place=city/town/village innerhalb so einer “Municipality” würden also Hauptort im Adresssinne behandelt. Im Falle von Bad Zwischenahn würde es also das Problem für das angegebene Beispiel lösen, hätte aber den Seiteneffekt, dass “Bad Zwischenahn” nicht mehr als “Stadt” in Orten wie Rostrop auftaucht. Das kann richtig sein, sieht mir aber in diesem Fall nicht so aus.

Bad Zwischenahn scheint mir eher der erst beschriebene Fall zu sein, sprich, was da als place=village gemappt ist, sind eigentlich Stadtteile. Und da kommen wir zu einem Problem, dass im Augenblick noch nicht zufriedenstellend gelöst ist. In vielen Kleinstädten gibt es nämlich zwar Stadtteile, aber der Stadtkern selber ist kein solche ein Stadtteil. Wenn Stadtteile dann einfach per place-Node gemappt sind, wird es sehr schwierig, diese Situation zu erkennen. Ein zweiter place-Node mit place=village fühlt sich aber irgendwie auch künstlich an und wie Mapping für den Geocoder. Ein Doppelwert a la place=town;village geht gar nicht. Das macht zu viel Software kaputt. Vielleicht wäre ein Zusatztag am place=town Node besser.

Aber wie gesagt, eine richtig gute Idee habe ich da auch nicht, würde das aber gerne in Nominatim auch gelöst sehen. Das ist auf jeden Fall ein Problem, was sich nicht auf Deutschland beschränkt.

Für mich ist die Gemeinde einfach unvollständig gemappt…

  • Es fehlt ein place=municipality-Node an der al=8-Grenrelation per role:label (damit kann ein Auswerter eine “Gemeinde” erkennen)
  • Es gibt unterhalb von al=8 z.Zt. dort keine Grenzrelationen, die für bessere Auswertung sorgen könnten

Das Hauptort und Gemeinde den gleichen Namen tragen ist ja nichts ungewöhnliches, s. unser Beispiel in der Dokumentation (der Stadt-Titel spielt keine Rolle)
https://www.openstreetmap.org/relation/531865 Gemeinde
https://www.openstreetmap.org/relation/8845283 namensgebender Hauptort

Das am Hauptort-place von Bad Zwischenahn die Einwohnerzahl der gesamten Gemeinde steht ist übrigens genauso suboptimal wie die identische wikidata-ID aber bei place-Nodes mit den alten openGeoDB-Sachen besteht häufig Verbesserungspotential…

Leider gibt es m.W. keine Karte, auf der so ein municipality-Node visualisiert wird. Das ist für Otto-Normalverbraucher schwer verständlich. Der sucht auf der Karte vergeblich nach Wedemark.

Wenn man sich einig ist dass Gemeinden administrative Objekte sind (deren Fläche also genau definiert ist), wieso empfehlen wir dann einen arbiträren municipality-node, und ergänzen nicht einfach place=municipality auf dem admin_level=8 polygon?

Die Information steckt bereits in der admin-Relation mit AL=8. Dass an den Grenzlinien von admin-Relationen zusätzlich das admin_level der höchstwertigen Relation eingetragen wird, ist ein für admin-Gebiete etablierter Sonderfall.
Bei AL=8 ist es egal, welche Siedlungen im Gebiet liegen, es ist immer die Verwaltungseinheit mit deren Namen. Jeder Auswerter sollte das in DE als Gemeinde erkennen.
Ein municipality-node wird mW dann empfohlen, wenn dem Renderer beim Ort der Beschriftung geholfen werden soll, dann aber als label in der admin-Relation, nicht als place.

place=* ist eine von admin völlig getrennte Objekthierarchie unter anderem auch für Siedlungen, die nur bei manchen davon mit der AL-Hierarchie zusammenfällt. Sie ist vor allem dort nützlich, wo noch keine lückenlose Überdeckung mit admin-Relationen vorhanden ist, insbesondere natürlich auch bei uns für die Siedlungen hierarchisch unterhalb AL=8, für die es keine admin-Relation gibt.

place ist auch dort hilfreich wo die administrativen Grenzen schon gemappt sind. Es ist in der Tat eine parallele Ordnung. Wenn man sich nur an administrativen Festlegungen orientieren würde könnte man manche Sachverhalte gar nicht abbilden. Z.B. ist der Vatikan mit allem was dazugehört (Petersdom, Petersplatz, etc.) in Rom (oder wird das bezweifelt?), aber verwaltungstechnisch gehört er natürlich nicht dazu, liegt gar in einem anderen Land. Wenn ich Rom als place=city polygon mappen würde wäre der Vatikan drin, im admin_level=8 aber nicht.
Das ist eine Ausnahme, klar, eine prominente die jeder kennt und daher gut illustrieren kann, was anderswo weniger extrem auch vorkommt.

Wedemark sieht für mich datentechnisch sauber aus. Das “Problem”, dass Gemeindenamen (al=8) i.d.R. nicht gerendert werden hat mit municipality-Nodes nichts zu tun.

hier geht es doch erstmal um was anderes: “Die Gemeindebezeichnung Bad Zwischenahn steht gleichzeitig auch für die Bezeichnung des Kernortes […]” (wie bei “Immenhausen”)
Das bedeutet in den OSM-Daten sollten sich dementsprechend auch 2 gleichnamige Objekte befinden.

-bei Eingabe von “Bad Zwischenahn” liefert OSM nur und einzig → Stadt Bad Zwischenahn wobei der Stadt-Link dann auf die Gemeinde führt
-bei “Immenhausen” dagegen Stadt Immenhausen + Gemeinde Immenhausen


Nachtrag:
… nur damit niemand denkt, dies liege bei “Immenhausen” an der al=9/10-Ortsteilrelation, einfach mal “Trendelburg” abfragen, da gibt es gegenwärtig (genauso wie in “Bad Zwischenahn”) noch gar keine Binnengrenzen.

Woran liegt das dann deiner Meinung nach? Und was schlägst du vor, dass dieses Manko behoben wird?
Die Crux ist doch augenscheinlich, dass der label Eintrag überhaupt nicht beachtet wird.

… das ist eine freie Entscheidung des (jeweiligen) Renderes, bzw. Kartenmachers, es gibt da kein grundsätzliches/strukturelles Problem in den OSM-Daten.
Und es braucht für das name-Rendering einer Gemeinde (al=8) auch keine label-Auswertung, die Daten kann sich ein Renderer, der Gemeindenamen anzeigen möchte, auch aus der Grenzrelation holen (in D ist al=8 seit Jahren vollständig erfasst), und den name einfach irgendwo/im Schwerpunkt rendern.

Hm, nur tut das kein einziger “Renderer” :rage:

Noe, das ist alles komplizierter für die Suche.

Wir haben bereits zwei Objekte in OSM. Die Gemeinde-Relation (https://www.openstreetmap.org/relation/1186777) und einen Town-Node (https://www.openstreetmap.org/node/30239908). Soweit, so gut. Für die Suche ist jetzt die spannende Frage, beziehen die beiden sich auf das gleiche Objekt (dann bitte nur eins von beiden bei der Suche zurückgeben) oder sind das unterschiedliche Orte (dann bitte beide listen).

Diese Frage lässt sich bei AL8-Relationen nicht eindeutig beantworten. Beispiel:

place=municipality würde ich ganz klar nur in letzteren Fall der reinen Zweckgemeinden verwenden, um genau dann klar zu machen, dass was gleich heisst, nicht das gleiche ist. Ein place=municipality an der admin-Boundary würde da übrigens völlig reichen.

Wo genau Bad Zwischenahn liegt als Gemeindeform, ist nicht ganz klar, aber es scheint mir eher Typ Zwickau zu sein. Wenn ja, dann ist alles richtige gemappt und wir sind zurück beim Problem, dass Ortskerne keine spezielle Kennzeichnung haben in OSM. Und deswegen der falsche Stadtteil im Suchresultat landet.

dass Bad Zwischenahn eigentlich keine Stadt ist kann man in den Daten gar nicht sehen? Eine Abfrage wie “alle Städte in Deutschland” kann man mit derzeitigem taggingstand nicht mit osm Daten beantworten, oder übersehe ich was?

So, so, Hannover, über 1/2 Mio Einwohner als al=8-Grenzrelation erfasst (statt al=6), wie eine kleine kreisangehörige Gemeinde. Als “Ausgleich” für das mickrige al=8 gibts dann noch place=city an Grenzrelation UND place-Node sowie wikidata identisch an Relation UND Node. Ja mei was soll ich dazu noch sagen…

Wer sich für tatsächliche al=8-Gemeinden in D und ihre korrekte Erfassung interessiert findet hier Beispiele und Abfragen:
https://wiki.openstreetmap.org/wiki/User:Jo_Cassel/Gemeindegrenze

Du könntest zum Beispiel sagen: Oh, Hannover ist keine kreisfreie Stadt. Wusste ich nicht, dass sowas bei Städten der Grösse in Deutschland existiert. Wieder was gelernt. :wink:

Das Tagging für Hannover ist völlig in Ordnung und entspricht dem, was in Deutschland Standard ist.

§ 15 NKomVG – Landeshauptstadt Hannover
“[…]
(2) Die Landeshauptstadt Hannover hat die Rechtsstellung einer kreisfreien Stadt nach Maßgabe dieses Gesetzes.
Auf sie finden die für kreisfreie Städte geltenden Vorschriften Anwendung, soweit durch Rechtsvorschrift nichts anderes bestimmt ist.
[…]”
http://www.lexsoft.de/cgi-bin/lexsoft/justizportal_nrw.cgi?xid=4202571,16

Aber Du hast insofern leider recht, dass Gaga-Daten in OSM schon häufig Standard ist.

“Stadt” ist halt eine Definitionssache, meinst Du Gebietskörperschaften mit “Stadt”-Titel (name:prefix), wie die al=8-Gemeinde Liebenau, bestehend aus 8 Dörfern:
https://www.openstreetmap.org/relation/455279
oder eine Großstadt (city)?
Eine simple Abfrage der place-Nodes liefert 86 x city in D - wer nach place=city an Grenzrelationen sucht, findet nur 14 (gibt da aber auch noch “alternativ” place:de oder de:place oder … )


Dies hat mit dem ganz konkreten von m_olli angesprochenem Problem aber nichts zu tun, und da diese ganze Disk schwer zumutbar/verständlich ist, habe ich die konkrete Situation mal verbessert/vervollständigt
https://www.openstreetmap.org/changeset/122834879
und sofort kann die OSM-Homepage zwischen “Stadt” vers. “Gemeinde” Bad Zwischenahn differenzieren.
(Das “Stadt” kommt aus dem place=town Node. Wäre der place=village - wie in Liebenau, s.o. - dann stände dort “Dorf”.)

genau, ich meine den Stadttitel.
name:prefix ist da nicht so supergut geeignet, da stehen neben Stadt auch alle möglichen Titel wie Universitätsstadt, Hansestadt, Barbarossastadt, aber auch Stadtteil, Stadtbezirk, Stadtgebiet, Stadtzelle und wer weiß was noch alles drin, um das auszuwerten bräuchte man in jedem Fall einige Zeit um das alles durchzugehen.
Bei city sollte es ja keine Frage sein, es geht um town wo das unklar ist