Postleitzahlengebietskarte

Hallo,

bin neu in der Thematik OSM.

Wollte schon länger mal probieren eine Postleitzahlengebietkarte selber zu Erstellen.
Ähnlich der Übersichtskrate der Postleiteinheiten (Die “Große” für die Wand…)

Und die Postleitzahlengebiete sollten wie hier
http://tools.geofabrik.de/osmi/debug.html?view=plz&lon=11.77287&lat=53.42627&zoom=8
aussehen. (Also nur die die Anzeige “Postleitzahlen original”)

Das Ganze sollte dann noch für einen Postleitzahlenbereich gefilter werden und freigestellt werden.

Wenn ich das sowiet richtig verstehe, brauche ich erstnal die OSM Daten für Deutschland. Donwloade ich gerade (ca. 1,5 GB)…
Die müssen dann in eine DB (Postgrey) und dann muss ich das ganze mit Mapnik rendern…

Ist das im groben so richtig?

Oder meint Ihr das bekommt man nicht hin…?

Die ganz große Frage die ich mir stelle ist, irgendwie habe ich das noch nicht so ganz mit Mapnik verstanden.
Ich brauch doch eine “Befhsdatei” für Mapnik, damit der weis was und er alles rendern soll korrekt?

Wie Ihr liest noch “Blutiger” Anfänger.

Bis jetzt habe ich nur das openstreetmap wiki als verständlich und nützlich emfunden aber leider nicht hierfür vollumfänglich.

Könnt Ihr mir evtl. noch ein paar Tips geben wegen der Kommandos für Mapnik?

Danke und Gruß

Marc

Also der Download der Daten ist schonmal ein richtiger Schritt. Allerdings stellt sich dann die Frage wie groß das “Bild” werden soll. Davon hängt nämlich auch ab ob es überhaupt auf deiner Hardware machbar ist.
Wenn es dir wirklich nur um die Postleitzahlengebiete geht, würde ich die Daten zunächst einmal vorbearbeiten mit osmfilter. Damit sparst du dir ind er Datenbank eine riesige Menge Platz. Die zweite Überlegung wäre, ob die Datenbank dann überhaupt noch nötig ist, wenn du es ohnehin als ganzes Bild haben möchtest, müssen dann eh alle Daten in den Speicher. Und das wird der Knackpunkt.
Die Datenbank ist eigentlich nur zum schnellen bereitstellen der benötigten Daten für kleinere Ausschnitte, welche Mapnik dann in tiles rendert. Da du aber ein ganzes Bild willst, würde ich erstmal ohne probieren. Wie du den stylefile in Mapnik anlegst, steht in dem dortigen wiki drin. Als Ausgangsmaterial dann einfach die gefilterte osm Datei nehmen.
Ansonsten musst du nämlich zwei Dateien anpassen. Den stylefile für osm2pgsql und den stylefile für Mapnik.

Ich denke auch dass Mapnik für den Zweck überkandidelt ist.

Wenn Marc uns sein OS nennt könnte man da nochwas empfehlen. :wink:

Hallo und danke schonmal für eure Anregungen.

Das ist ein guter Anhaltspunkt.

Ich möchte nicht ganz Deutschland nur ein Teil von Niedersachsen und NRW als Postleitzalenkarte.

Dann schaue ich mir mal osmfilter an…

OS ist WinXP.

Ich probiere dann mal.

nochmal Danke und Gruß

Marc

Es ist wohl gestern irgendwie untergegangen.?!
Herzlich willkommen im Forum, Marc. :wink:
Georg

Wer nicht gleich mit Datenbanken arbeiten will kann es auch in Einzelschritten und für einen Normluser nachvollziebaren Schritten (ohne DB) machen.

  1. OSM laden - hasste ja schon (am besten als pbf - da am kleisnten)
  2. Mit osmconvert umkonvertieren (da leider osmfilter nicht mit pbf arbeitet)

Quelle: http://wiki.openstreetmap.org/wiki/DE:Osmconvert
Aufruf: osmconvert.exe --drop-author --drop-version --emulate-pbf2osm C:\OSM\germany.osm.pbf --out-o5m> G:\OSM\germany.o5m

Da ist schonmal ein gewisser Müll (History usw.) weg denn wir nicht brauchen und o5m ist sehr schnell beim suchen in den daten.

  1. Mit osmfilter dann nur die benötigten Dtaen ausfiltern

Quelle: http://wiki.openstreetmap.org/wiki/DE:Osmfilter
Aufruf : o5mfilter.exe -h=1000 C:\OSM\germany.o5m --drop= --keep=“postal_code” > plz.osm

Jetzt sollten wir ganz Deutschland von ca. 15GB (OSM-Rohdaten) auf ca. 230 MB eimngedampft haben.

  1. Jetzt kann man die Daten ohne Probleme in ein Renderprogramm jagen z.B Maperitive

Diese benötigt jetzt nur noch 600MB Hauptspeicher fürs Renderen von ganz D

Kurz Rules für Maperitive:

features
areas
plz : postal_code AND type=multipolygon

properties
map-background-color : #F1EEE8
map-background-opacity : 1
// map-sea-color : #0080ff
font-weight : bold
font-family : Verdana
text-max-width : 9
text-halo-width : 25%
text-halo-opacity : 0.75
text-align-horizontal : center
text-align-vertical : center
font-stretch : 0.9
font-size : 10
map.rendering.lflp.min-buffer-space : 50
map.rendering.lflp.max-allowed-corner-angle : 40
map.rendering.lflp.max-compression : 0.9
min-zoom : 5
max-zoom : 18
rules
target: plz
define
min-zoom : 12
text:postal_code
draw: text

	define
		fill-opacity	: 1
		line-color : #000000
		line-opacity : 1
		min-zoom : 5
		line-width : 0

// Sonderzuweiseung da PLZ < 1000 aber im 30000 Gebiet liegt
for : postal_code=3915
define
fill-color : #ff00ff
draw : fill
stop
// PLZ unter 10000
for : postal_code<10000
define
fill-color : #ffffff
draw : fill
stop

//PLZ zwischen 10000 und 20000
for : postal_code>10000 AND postal_code<20000
define
fill-color : #80ff80
draw : fill
stop

// PLZ über 90000
for : postal_code>90000
define
fill-color : #2020ff
draw : fill
stop
define
line-color : #000000
fill-color : #b5d0d0
min-zoom : 5
line-width : 0

	draw : fill

Allerdings sind auf der Karte noch etliche “Weise Flecken” was nicht am immer an fehlenden Daten sondern am tagging wildwuchs liegt der manches Auswerten nicht grad leicht macht.

Quasilotte

Hi Marc,

ich weiß nicht, wozu Deine Karten dienen sollen. Für den Postleitzahlenimport standen damals nur sehr grobe Daten zur Verfügung. Da kann man locker von einem Fehler in der Größenordnung hundert Meter oder mehr ausgehen.
http://wiki.openstreetmap.org/wiki/Import/Catalogue/Postleitzahlen_Deutschland_2010

Dafür sollte es auf alle Fälle reichen.

Wenn Du anhand dessen die Zuordnung der Postleitzahl zu Gebäuden vornehmen möchtest, wird das in Grenznähe in den meisten Fällen scheitern.

Gruß
Tirkon

Vielen Dank für diese anfängerkompatible Anleitung. :slight_smile:

Könntest Du diesen “Wildwuchs” und dessen Folgen vielleicht einmal an einem konkreten Beispiel verdeutlichen?

Gruß
Tirkon

  1. Sind teilweise mehere PLZ in einem Poly zusammengefasst Bsp: 77873; 77874; 77875; 77876

  2. Mache sind mehrmals erfasst Bsp: 76332 65597

  3. Manche sind nur als node erfasst Bsp: 27367

  4. Hab auch Areas gefunden indirekt als postal_code über die Relation definiert sind aber selbst keine plz haben Region um 27367

  5. Mehrfach erfasste PLZ als Multipolygon mit inner und outer bei der inner die outer definition irgendwie unterdrückt (möglicherweise selbst als postal_code ohne nummer …) [oder zusätzlicher Polygon das das Multi übermalt] Bsp: 63856

  6. Kleingebietserfassung Bsp: 41740 30926 [gehört nomalerweise in addr:postal_code]

Ich hab nicht alls bis zur Hieb- und Stichfestigkeit analysiert sondern nach Fehlerstellen der Karte geschaut und anhand der Info von Maperitive versucht den Fehler zu finden bzw. zu vermuten…

Quasilotte

Hallo,

ich bin am verzweifeln. Aber genug gejammert :slight_smile:

Auch ich bin auf der Suche nach PLZ-Gebieten. Speziell vom PLZ-Bereich 7. Am liebsten wäre mir dabei das kml-Format.
Jetzt hab ich schon ziemlich viel rumprobiert: GPS-Babel, osmexport mit Ruby, kml manager, …
Leider hatte ich mit nichts Erfolg. Außer Fehlermeldungen…
Als Quelldatei hab ich mir die Baden-Wuerttemberg.osm runter geladen.

Könnt ihr mir weiterhelfen?

Wie würdet ihr die PLZ-Polygone in eine kml umwandeln?

Vielen Dank schonmal für eure Hilfe!

P.S.: mein OS ist WinXP

Fabian

hallo Fabi, willkommen bei uns im Forum. Noch mal ganz kurz zu Möglichkeiten diese einzutragen: http://wiki.openstreetmap.org/wiki/Postal_code

Ja leider ist das noch nicht so leicht, prinzipiell müsste man dabei wie folgt vorgehen
1.OSM XML Datei einlesen und nach PLZ Grenzpolygonen suchen (die darin genutzten Ways notieren), sowie nach PLZ tags an Place nodes bzw. Straßen. Alle Straßen mit derselben PLZ in einen Container packen und von diesem das umschließende Polygon berechnen
2.in einem zweiten Lauf die Ways der Gebiets-Relationen bestimmen, aus allen dieser Ways je PLZ Region die Fläche konstruieren

Alles machbar aber definitv eine Bastllösung. Es gibt in einem anderen Thread gerade jeamden, der die Grenzen der Gemeinden visualisiert und sich dem PLZ Thema auch noch annehmen möchte :slight_smile:

Vielen Dank für die schnelle Antwort!

Also versteh ich das richtig, dass es bei OSM keine PLZ Polygone gibt, sondern nur Straßen, die eine PLZ zugeordnet bekommen?
Zur Zeit arbeite ich noch mit den Daten von http://arnulf.us/PLZ. Das sind ja Polygone und deshalb dachte ich, das wäre bei OSM auch so. Liege ich damit falsch?

Wie schafft es denn der OSM Inspector, die PLZ-Polygone darzustellen?
http://tools.geofabrik.de/osmi/debug.html?view=plz&lon=9.58951&lat=49.22495&zoom=9
Im Prinzip wäre das für mich die Lösung.
nur - wie kommt man an die Daten ran?

Es gibt beides, aber nicht flächendeckend. Eben immer so, wie es derjenige eingetragen hat.

Gruß,
ajoessen

Ich habe vor, noch die PLZ Übersicht auszuwerten, dauert aber noch etwas. Wenn jemand dringend die Polygone der PLZ Gebiete braucht,
hier ein Auszug von heute. Ist recht vollständig, aber ein paar weiße Flecken gibt es schon noch.

http://ags.misterboo.de/plz/plz-osm-de-120120.zip

Zum Teil sind die von:
http://arnulf.us/PLZ

Und der Rest sind eben die OSM-Polygone, soweit vorhanden. Da steckt halt ne Postgis Datenbank hinter.

gruß,
ajoessen

@misterboo: Super, vielen Dank!
Aber wenn ich es in ein kml konvertiere, dann sind die Polygone an einem falschen Ort auf der Karte plaziert. Also irgendwie verschoben. Ist das bei dir auch so, oder kann das ein konvertierungsproblem sein?

Habs mit http://www.shpescape.com/ direkt in Google Fusion Tables importieren lassen. Das macht ja automatisch eine kml aus den Shape Dateien.

osmfilter mittelfranken.o5m --keep=“postal_code=” --keep-tags=“all” -o=post.osm
gpsbabel -i osm -f post.osm -o kml -F PLZ.kml

und dann die PLZ.kml in marble angeschaut: Naja, so oder so ähnlich :wink:

An alle verzweifelten, auf dieser Webseite kann man sich die aktuellen PLZ-Grenzen im OSM-Format herunterladen :laughing:

http://www.suche-postleitzahl.org/downloads

Aber die auf der eigenen Seite stimmen nicht!

In Dippoldiswalde 01744 ist mittlerweile seit 2,5 Monaten Schmiedeberg (ehemals 01762 Schmiedeberg) eingemeindet. Also erst einmal selber Ordnung machen (?)

Richtig in OSM

Dabei steht auf der Seite: “Diese Dateien wurden am 25.03.2014 das letzte mal aktualisiert”

Nehme mal an, die Website wurde nicht angepasst.