Wollte schon länger mal probieren eine Postleitzahlengebietkarte selber zu Erstellen.
Ähnlich der Übersichtskrate der Postleiteinheiten (Die “Große” für die Wand…)
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?
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.
// 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.
Sind teilweise mehere PLZ in einem Poly zusammengefasst Bsp: 77873; 77874; 77875; 77876
Mache sind mehrmals erfasst Bsp: 76332 65597
Manche sind nur als node erfasst Bsp: 27367
Hab auch Areas gefunden indirekt als postal_code über die Relation definiert sind aber selbst keine plz haben Region um 27367
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
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…
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?
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
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?
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.
@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.
In Dippoldiswalde 01744 ist mittlerweile seit 2,5 Monaten Schmiedeberg (ehemals 01762 Schmiedeberg) eingemeindet. Also erst einmal selber Ordnung machen (?)