Hi,
vor allem @lonvia hier - aber ich wollte andere von der DIskussion nicht ausschliessen.
Mir fällt immer öfter auf - vor allem bei Notes benachrichtigungen das die ergebnisse des “Reverse Geocodings” doch wundersam sind. Ich kriege teilweise das place=neighbourhoods von Kilometern weiter mit reingeworfen was völliger Unsinn ist. In Bielefeld gibt es auch noch Tonnen an Neighbourhoods die wie die ursprünglichen Höfe heissen was dann immer sehr verwirrend ist.
Hier ein Beispiel:
near Siedlung Am Kamphof, Kattenstroth, Gütersloh, Kreis Gütersloh, North Rhine-Westphalia, 33334, Germany
Das Problem ist hier ja das nominatim vermutlich “Raten” muss wie weit das Neighbourhood geht, und da sind eben ein paar annahmen drin die für Los Angeles oder Moscow passen, aber für die kleinräumigen Strukturen hier eher nicht so.
Was für optionen habe ich?
boundary=administrative + place?
Gibts auch eine option einfach einen “radius” an einen place zu kleben?
Sowas wie:
place=neighbourhood
name=foo
radius=200
Ist dann eben maximal 200m radius um den node. (War jetzt so mein erster Einfall)
DECLARE
radius FLOAT := 500;
BEGIN
IF rank_search <= 16 THEN -- city
radius := 15000;
ELSIF rank_search <= 18 THEN -- town
radius := 4000;
ELSIF rank_search <= 19 THEN -- village
radius := 2000;
ELSIF rank_search <= 20 THEN -- hamlet
radius := 1000;
Wie kumakyoo sagt, Areas sind das Nonplusultra, denn: boundary=administrative verkürzen den Wirkungskreis eines neighborhood, z.B.: Nikolausberger Weg 34, Göttingen => 34, Nikolausberger Weg, Humboldtbogen[place=neighborhood], Deutsches Theater[admin_level=11], Innenstadt[admin_level=10]
auf der anderen Straßenseite—keine 50m weg—dann schon ohne neighborhood Nikolausberger Weg 35, Göttingen => 35, Nikolausberger Weg, Humboldtstraße[admin_level=11], Nordstadt[admin_level=10]
Insbesonder bei “place=farm” ist das echt verwirrend.
z.B.
“new comment near Speckmanns Hof, Heepen, Bielefeld, North Rhine-Westphalia, 33719, Germany”
Das ist etwa einen Kilometer von der Hofstätte von “Speckmanns Hof” entfernt
und das Objekt liegt nicht einmal im gleichen Siedlungskörper.
Es gibt hier zwar vereinzelt Ortsteile / Siedlungen die tatsächlich nach einem Hof benannt sind (Kamphofviertel hinter dem Bielefelder Hauptbahnhof, Lohmannshof an der Bielefelder Uni, Oberlohmannshof in Bielefeld-Jöllenbeck), aber in diesen Fällen besteht der namensgebende Hof überhaupt nicht mehr, oder zumindest nicht mehr als landwirtschaftlicher Betrieb.
Auch bei meiner eigenen Adresse bekomme ich als Angabe:
“near Meier zu Ummelmann, Mitte, Bielefeld, North Rhine-Westphalia, 33615, Germany”
obwohl es keine Spuren dieses Hofes mehr gibt:
Sieht so aus als sollten wir für “place=farm” mal über lifecycle management nachdenken?
area-Objekte sind eindeutig vorteilhafter für reverse geocoding, aber: neighbourhood|hamlet|suburb|locality sind allesamt idR nur schwammig lokalisiert.
Man kann da einen Umriss malen, der ist meist aber letztlich frei erfunden - jedoch besser als gar nichts und immer noch besser als ein Radius.
Wie man aber an dem Code-Auszug ableiten kann (radius), ist die Zugehörigkeit zu einem Gebiet deutlich aufwendiger zu bestimmen als eine primitive Abstandsmessung zu machen, denn mindestens city und town haben in DACH immer eine zugehörige admin-Grenze.
admin-Grenzen für die ganz oben genannten Gebiete halte ich aber in diesem Zusammenhang eigentlich für missbräuchlich, mit Verwaltung hat das ja fast immer nicht das Geringste zu tun. Aber nun gut, AL=11,12 und gelegentlich mehr sind schon gebräuchlich.
Idealerweise place=neighbourhood als Fläche mappen, einfach ohne boundary=administrative, ausser das ist ein offizieller Stadtteil. Radius an den Node geht nicht, das bringt uns auch nicht wirklich weiter, denn die Stadtteile sind ja selten rund (oder im Fall von Nominatim, rechteckig).
Das habe ich inzwischen herausgenommen, genauso wie place=isolated_dwelling. Das wird sich allerdings erst mit der Zeit in der Datenbank bereinigen.
Vermutlich macht ein Software von dir ein reverse-Geocoding mit zoom=14. Das gibt dir die nächste Neighbourhood zu deinem Punkt. Das ist nicht das gleiche, wie die Neighbourhood ermitteln, die an diesem Punkt in der Addresse vorkommt. Der max-Suchradius dazu ist hier (WSG84)
Wenn du punktgenau geocodieren willst, lieber mit dem Standardzoom arbeiten und die Angaben, die dich nicht interessieren, wegwerfen. Wenn du das geocodejson-Format nutzt, kannst du da bequem, die entsprechenden Felder zu einem passenden Label verbinden…