Export der Postleitzahlengebiete als GeoJson

Hallo,

ich möchte gern eine Art Postleitzahlen-Heatmap mit allen Postleitzahlen Deutschlands erstellen in der Art wie: https://maps.aimpulse.com/osm/addresses/
Soweit ich herausgefunden habe, kann ich das mit leaflet.js machen.
Dafür brauche ich die Postleitzahlengebiete als GeoJson.
Ein User hier macht ja genau das was ich suche: https://osm.wno-edv-service.de/pcboundaries/
In einem Thread hier im Forum: https://forum.openstreetmap.org/viewtopic.php?id=27241 wird geraten dafür QGis und die overpass-Api zu nutzen.
Aufgrund der Datenmenge und Nutzungsbedingungen denke ich nicht das ich die gehostete API nutzen kann.
Nun frage ich mich wie kompliziert es wohl ist das ganze selbst lokal aufzusetzen und daraus die Daten zu exportieren?

jo, das stimmt fast :wink:

schon mal gesehen, wie alt der ist? Aber gehen tut das schon.

Die Datenmenge ist nicht das Problem - nur es gibt hier keine API. Es gibt derzeit nur eine GUI, die zum Export aller PLZ-Grenzen nie gedacht und auch nicht geeignet ist.

daher versuche mal:


wget -O alle_plz.geojson 'https://wambachers-osm.website/geoserver/osm/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=osm:postal_boundaries&maxFeatures=10000&outputFormat=application%2Fjson'

Das ist relativ frisch und könnte funktionieren. Sollten etwa 150 Mb sein. Du musst danach nur alle PLZ > 100000 ignorieren. Das sind PLZ-Zonen.

also einfach ist das net.

Gruss
walter

wie wäre es mit einer kurzen stichpunktartigen Liste (Schlagworte), damit das der User selbst entscheiden kann? Vielleicht ist er ja voll der Krack oder ihm poppt ein Fragezeichen nach dem anderen auf und streicht schon bei PostGIS die Segel…

naja - wenn es der Wahrheitsfindung dient:

  • PostgreSQL-DB mit PostGIS
  • Import der Rohdaten mit osm2pgsql
  • Query auf planet_osm_polygon mit osm_id<0, boundary=postal_code und Spatialem Filter für Deutschland
  • Umwandlung der Geometrien mit ST_AsGeoJson()
  • Ausgabe aller relevanten Tags und der Geometrien

feddich.

Gruss
walter

ps: geht natürlich auch noch anders, aber that’s “My Way”

Ich glaube, er meint die Overpass API, aber auch die dürfte mit einmalig 150MB gut zurecht kommen, vorallem wenn man die FR-instanz oder die auf rambler nimmt.

Ich weiß nicht genau, wo die Zahl herkommt, alle Relationen mit type=boundary und boundary=postal_code weltweit sind eher >500MB als XML.

Evtl. interessant: als PBF (auch weltweit) sind das 27MB Download (DB wird momentan nicht aktualisiert, nur testweise!)

http://overpass-turbo.eu/s/k7V → Export → Rohdaten direkt von Overpass API

Die Datei “interpreter” würde ich dann in plz.pbf oder ähnlich umbenennen und dann mit osm2pgsql in eine DB laden. Dann weitermachen wie oben beschrieben.

Die kommt von mir und betrifft alle PLZ-Grenzen in DE. Und natürlich im vom Fragesteller gewünschten GeoJson-Format.

Gruss
walter

Es ist oft nicht notwendig, die Grenzen mit Haltepunkten alle paar Meter im Web anzuzeigen. Stattdessen kann man sie simplifizieren.
Das GeoJSON für die Landkreise kann so z.B. auf ca. 1,3 MB reduziert werden.

Das Vereinfachen von sich berührenden Polygonen ist nicht gerade trivial, wenn man Wert darauf legt, dass sich keine Lücken oder Überlappungen bilden.

siehe: http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology

Ich möchte das hier nicht als Lösungsvorschlag vorstellen, sondern hier wird in der dritten Grafik nur verständlich dargelegt, wo es Probleme geben kann.

Und zudem kommt es bei manchen Anwendungen wirklich auf jeden Meter an:

Gruss
walter

Klar, kommt immer darauf an, wofür man es braucht. Man kriegt es schon hin, dass sich angrenzende Polygone ohne Lücken berühren. Das ist aber schon etwas komplizierter - stimmt.

Hehe ja habe gesehen, dass der Thread sehr alt ist.
Mit der API meinte ich tatsächlich die Overpass-API wie im erwähnten Thread empfohlen.

Aber VIELEN VIELEN dank für deinen Link. :slight_smile: Ich hatte schon überlegt es über deine Webseite zu machen und mir die Plz-Kreise “einzeln” herunter zu laden. Allerdings wollte ich deinen Server nicht zu sehr belasten, weil ich das ja ganz kostenfrei mache.
Mit den Daten von dir konnte ich jedenfalls schonmal einen Prototypen erstellen (so oft ändern sich die Zonen ja nicht).

Ich habe erstmal alle Zonen einzeln nachgeladen. Leider steigt da der Browser auf dem Testsystem mit Win32 4GB RAM bei ~6000 eingefügten Zonen aus :laughing: (Daher die blanken Flächen.)
Da muss ich wohl noch was optimieren, sieht aber schon sehr vernünftig aus!

Ich habe Medieninformatik studiert und Geoinformationssysteme wurden ebenfalls behandelt. Also ein bisschen sagt mir das alles schon etwas :wink:
Aber ich muss da nochmal kräftig auffrischen.
Jedoch hilft mir die Liste auf jeden Fall schon deutlich weiter, denke ich. Vielen Dank ein weiteres Mal!

Ah okay, das hilft auch weiter, denke ich. Ich hatte mir schon die kompletten Daten von Deutschland von http://download.geofabrik.de/ gezogen und dann mit osmfilter nach boundary und postal_code gefiltert. Nur konnte ich dann mit den gefilterten Daten weiter nichts anfangen. Ich weiß nicht wie ich davon auf die Polygone komme.

Das dürfte je nach Anwendung zur Optimierung sehr interessant sein, falls es mal mehr als ein Prototyp wird. Denn je nach Ausgabe müssen die Grenzen nicht immer super akkurat sein.

Vielen Dank an alle! Ich habe aus dem Thread schon mal viel mitgenommen.
Ich denke wenn ich die GeoJson-Daten das nächste Mal selbst erzeugen möchte, komme ich nochmal auf den Thread zurück :sunglasses: