Overpass turbo: Erhalte zu viele PLZ-Gebiete für einen Kreis

Hallo,

wenn ich auf overpass-turbo.eu diesen code

rel[name="Rheinisch-Bergischer Kreis"][admin_level=6][boundary=administrative];
out geom;

ausführe, sehe ich wie erwartet die Grenze des Rheinisch-Bergischen Kreises.
Wenn ich jetzt aber mit

area[name="Rheinisch-Bergischer Kreis"][admin_level=6][boundary=administrative];
rel(area)[boundary="postal_code"];
out geom;

versuche, alle Postleitzahlengebiete innerhalb dieses Kreises zu erhalten, erhalte ich zu viele. Es werden auch Postleitzahlengebiete der kreisfreien Stadt Leverkusen mit aufgenommen, zum Beispiel 51377.
Warum ist das so und wie erhält man tatsächlich nur die Postleitzahlengebiete eines bestimmten Kreises?

VG

Warum das so ist, kann ich dir nicht sagen, da ich kein “Overpassisch” spreche. Allerdings sehe ich mit meinen bescheidenen Hilfsmitteln, dass es eigentlich funktionieren müsste. Jedenfalls gibt die Datenlage das her.

Wenn du das gebrauchen kannst, melde dich ruhig. Dann erkläre ich gerne, wie das mit der Boundaries Map und der Postcode Boundaries Map geht. Aber wie ich schon schrieb: “Eigentlich” sollte das auch mit der Overpass gehen.

gruss
walter

ps: ich war am Anfang etwas skeptisch, da so eine Frage bei Städten nicht immer funktionieren wird. Dort richten sich die PLZ-Grenzen nicht immer nach den Admin-Grenzen. Aber hier hast du anscheinend Glück gehabt.

Beide Leverkusener PLZ-Gebiete enthalten jeweils einen Zipfel, der in den Reinisch-Bergischen Kreis hineinreicht: ein paar Gebäide stehen zwar auf Bergischem Grund, haben aber wegen der Zufahrt eine Leverkusener Adresse.

Formal ist die Ausgabe korrekt: alle PLZ-Gebiete, die im Kreis sind oder in den Kreis hineinreichen. Meinst Du, eine Abfragen nach PLZ-Gebieten die ausschließlich im Kreis sind wäre sinnvoller für Deine Zwecke?

Baßtölpel

Ok, das erklärt einiges. Ich hab bei meiner Schnellauswertung alle PLZ-Grenzen gesucht, deren Schwerpunkt (center) innerhalb des Rheinische Bergischen Kreises liegt. Dadurch sind die “Zipfel” natürlich nicht enthalten.

Das lässt sich doch sicher auch bei der Overpass so machen, oder?

Gruss
walter

Hallo wambacher,

wie hast du es geschafft, das ganze ohne Overpass zu erreichen?

VG

Meine “bescheidenen” Mittel: eigene PostgreSQL-DB und Anzeige danach mit Qgis. :wink:

Ist aber nicht so wichtig. Ich habe halt nicht abgefragt welche Flächen im Kreis liegen, sondern welche Mittel-/Schwerpunkte im Kreis liegen. Und dadurch sind diese Zipfel - die ich übrigens garnicht bemerkt hatte - einfach rausgeflogen.

Ich hab keine Ahnung von der Overpass, aber hier http://gis.19327.n8.nabble.com/Overpass-API-Overpass-QL-center-and-centroid-function-td5812491.html ist die Rede von “center”. Also irgendwas gibt es da.

Gruss
walter

Sorry, hatte die Frage gar nicht gesehen.
Ja genau: ich brauche die PLZ Gebiete, die in dem Kreis liegen. Also Ja, es wäre sinnvoller für meine Zwecke.
Weißt du wie das geht?

Das hatte ich auch schon gesehen, aber das ist nicht was ich suche. Laut
http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL
benutzt man das, um das Zentrum einer (rechteckigen) bounding box an out zu schicken. Hilft hier also leider nicht :confused:

Edit: Habe lange genug gebraucht, um mich in OSM Daten und diese Overpass API reinzufuchsen, zögere also noch mich jetzt wieder mit was neuem zu befassen (dieses QGis mit SQL). Ich brauche nämlich bloß eine Liste, welche PLZ zu welchem Kreis (oder kreisfreie Stadt) gehört innerhalb von NRW :confused:

also in der von dir selbst verlinkten Dokumentation steht es vollständig

Damit ist nicht die äußere bounding box gemeint, sondern die der Fläche (bestehend aus ways oder relations). Ich nutze das z.B. bei der direction Karte, wo ich NUR Punkte benötige, aber auch Aussichtspunkte als Fläche (geschlossener way) bekomme und damit kann man in leaflet aber keinen Punkt erzeugen, also center und das macht mir dann den Mittel-Punkt dieser Fläche. Hilft dir aber in der Tat auf den ersten Blick auch nichts, weil overpass vorher ja schon die “falschen unbenötigten” PLZ Flächen ermittelt hat. Vielleicht weiß mmd mehr.

Leider nein. Aber gesetzt den Fall, wir finden hier eine entsprechende Abfrage für vollständig im Kreis liegende Gebiete, dann würde ein PLZ-Gebiet mit einem Zipfel, der in einen Nachbarkreis reicht nicht mehr gefunden. Für eine hilfreiche universelle Abfrage würde es vielleicht reichen, die PLZ-Gebiete zu finden, die den center innerhalb des Kreises haben, vielleicht ist es auch nötig, diejenigen zu suchen, die zu mindestens 90% oder so ihrer Fläche im Kreis liegen.

Baßtölpel

Hi,

da ich dir relativ geringe Chancen ausrechne, hier mal die Liste:

https://wambachers-osm.website/images/osm/data/nrw_al6_plz.txt

dazu 2 Images:


das 1. soll die fast 100%-ige Abdeckung anzeigen und im 2. Bild gibt es ein PLZ-Gebiet, das wohl nach Hessen hineinragt.

Gruss
walter

Mit etwas fieser Trickserei geht da schon noch was:


rel[name="Rheinisch-Bergischer Kreis"][admin_level=6][boundary=administrative];
map_to_area;
node(area)[place];
is_in;
rel(pivot)[boundary="postal_code"];
out geom;

Tricky - aber ich verstehe kein Wort :wink:

Die Idee ist, dass wir alle “place” Knoten im Rheinisch-Bergischer Kreis ermitteln, und dann für jeden dieser Knoten schauen, in welcher PLZ-Grenze die liegen. Ist nicht ganz sauber, erfüllt aber hoffentlich den Zweck.

aua - tut richtig weh :wink: