falls es nicht zwingend die Overpass API sein muss, hilft Dir möglicherweise bereits die PLZ-Karte des Benutzers “wambacher” weiter: https://osm.wno-edv-service.de/plz/
ganz einfach: Die ältere PLZ-Karte zeigt online alle PLZ-Daten (Grenzen und Adressen) an und die neuere PC-Boundaries nur die PLZ-Grenzen aber dafür auch mit Download. Allerdings ohne Button: “Lade mir alle PLZ-Grenzen von DEU runter”.
Kommt darauf an, wie man das Wort “kann” interpretiert:
Natürlich “kannst” du dir die Grenzen aus OSM ziehen, wenn du es “kannst”. Nur steckt da ein Haufen Computerhardware, Wissen und Arbeit hinter.
Einen einfachen Weg, alle PLZ-Grenzen von DEU herunterzuladen, ist mir jedenfalls nicht bekannt. Du kannst die natürlich aus der Overpass ziehen, aber die Admins werden dir wohl bei über 8000 Rels die Ohren lang ziehen.
Zudem sind die Gebiete extrem stabil und ändern sich sehr selten.
Was ich machen kann: Diese Download quartalsweise auch in den andren Formaten erstellen, falls Änderungen der Post geschehen sind. Mal sehen.
Über http://www.weogeo.com/data/OpenStreetMap_Data.html kriegt man wohl auch bestimmte Daten (edit: ja, die Geometrien und Namen. PLZ-Gebiet haben aber keinen Namen…) runtergeladen - ich teste grade mit den Boundaries. Aber die wollen deinen Namen, deine Mailadresse, deine Hausadresse+Telefonnummer haben…
edit: Viel einfacher gehts mit den QuickOSM-Plugin für QGis[1]. Das macht Overpass-API-Anfragen und liefert die Daten gleich als Polygone mit den PLZ-Nummern (die fehlen bei weogeo, was das Ganze da etwas sinnlos macht). Aber es gelten die Beschränkungen/Nutzungsregeln für die Overpass-API.
Sorry ich habe mich nicht konsequent genug ausgedrückt.
Also ich habe genug Server Power und habe mir die OSM XML in meinen MSSQL Server importiert.
Nun würde ich gerne wissen wie ich die PLZ Grenzen identifiziere.
Suche dir alle Relationen mit boundary=postal_code, die in Deutschland liegen.
danach alle Grenzlinien, die Member dieser Relationen sind.
dann baue aus den Einzelwegen für jede Relation die Multipolygone (PLZ-Gebiete können auch “Löcher” (Exklaven/Enklaven) haben).
exportiere diese Multipolygone in dem dir genehmen Format.
Sorry, ohne GIS - also im OSM-Fall Postgresql/PostGis - geht das nicht.
Allein schon Step 1 dürfte dir Probleme machen, da du die Grenze von Deutschland natürlich auch noch nicht hast. Diese müsstest du dir nämlich erst einmal nach fast dem gleichen Verfahren zusammenbauen.
Wenn du das nicht für nötig erachtest, da du ja sicher den Germany-Extrakt benutzt: Der enthält auch einen kleinen Streifen Ausland und da gibt es auch PLZ-Gebiete (CH, AT, BE, …)
OSM-XML sind Rohdaten, die zwar alles enthalten aber noch heftig vorverarbeitet werden müssen. Dafür gibt es osm-Tools wie osm2pgsql und andere.
Hehe Wie sie alle auf Microsoft SQL Server spucken :-). Der kann mittlerweile schon sehr viel!
Also die Deutschland Grenze habe ich als großes Polygon.
Mit dem SQL Server kann ich mir dann alle Relationen mit boundary=postal_code ziehen die darin liegen.
Ich sehe es als tolle Aufgabe an Und ich bin mir sicher das das mit dem MS-SQL Server geht. Wenn ich die Erlaubnis bekomme veröffentliche ich die Scripte dazu.
Bis dahin,
sorry, habe MySql gelesen und nicht MSSQL. Daß der natürlich saugut ist, ist mir schon bekannt. Und Gis soll der ja auch können.
woher?
Die Relationen in OSM haben keine Koordinaten - da ist nix mit “die darin liegenden ziehen”.
See you next year
Gruss
walter
Jetzt mal im Ernst: Die Toolchain zu Verarbeitung von OSM-Daten ist zu 100% auf PostgreSql und PostGis aufgebaut. Es werden da auch bestimmte Programme wie osmosis und osm2pgsql verwendet, die die Umwandlung OSM-XML —> OSM-Datenbank übernehmen. Es ist mMn absoluter Wahnsinn, das nachzubauen zu wollen.
Vorallem ist es nur eine Fingerübung, weil man ja mit der Overpass-API und QGis echt gut an die Daten kommt.
Das man das nachbauen kann halte ich für gegeben, aber ich wüsste nicht, wieso man das tun sollte.
Man kann mit ogr2ogr und einem entsprechenden config-file auch die (Multi)Polygone der Postleitzahlengrenzen kriegen.
Configfile: (als osmconf.ini):
#
# Configuration file for OSM import for postcode boundaries
#
# put here the name of keys for ways that are assumed to be polygons if they are closed
# see http://wiki.openstreetmap.org/wiki/Map_Features
closed_ways_are_polygons=aeroway,amenity,boundary,building,craft,geological,historic,landuse,leisure,military,natural,office,place,shop,sport,tourism
# comment to avoid laundering of keys ( ':' turned into '_' )
attribute_name_laundering=yes
# uncomment to report all nodes, including the ones without any (significant) tag
#report_all_nodes=yes
# uncomment to report all ways, including the ones without any (significant) tag
#report_all_ways=yes
[multipolygons]
# common attributes
# note: for multipolygons, osm_id=yes instanciates a osm_id field for the id of relations
# and a osm_way_id field for the id of closed ways. Both fields are exclusively set.
osm_id=yes
osm_version=no
osm_timestamp=no
osm_uid=no
osm_user=no
osm_changeset=no
# keys to report as OGR fields
attributes=boundary,postal_code
# uncomment to avoid creation of "other_tags" field
other_tags=no
[other_relations]
# common attributes
osm_id=yes
osm_version=no
osm_timestamp=no
osm_uid=no
osm_user=no
osm_changeset=no
# keys to report as OGR fields
attributes=name,type,postal_code,boundary
# keys that should NOT be reported in the "other_tags" field
ignore=area,created_by,converted_by,source,time,ele,note,openGeoDB:,fixme,FIXME
# uncomment to avoid creation of "other_tags" field
other_tags=no
# uncomment to create "all_tags" field. "all_tags" and "other_tags" are exclusive
#all_tags=yes
Ich habe mir einen .NET XML Importer (Konsolenanwendung) geschrieben der mir die Nodes, Ways, Relationen einzeln in die DB pustet.
Dann baut er mir aus den Nodes die Ways und danach baue ich mir mit den Ralationen die Multipolygone zusammen. Dann noch die Tags indiziert für die jeweilige Gruppe und alles läuft prima … läuft ungefähr 8 Stunden für Deutschland.
Oh ich lasse mich nicht beirren :-). Jeder soll seine Meinung kundtun … ich habe gefragt und bin froh über jede Antwort g.
Btw. Danke noch mal an alle die geantwortet haben!
Hab ich mir schon gedacht - das nenne ich “schummeln”
Wie ich gestern schon kurz bemerkte: Die Grenz-Relationen an sich haben keine Geo-Informationen. Sie sind “nur” eine Liste von Ways.
Ways in Osm.xml haben auch keine Koordinaten sondern sind ebenfalls nur eine Liste der Nodes. Erst die Nodes haben lat/lon.
Also mußt du dir erst die Wege zusammenpfriemeln, daraus die (Multi)-Polygone erstellen und erst dann kannst du entscheiden, ob du das Teil überhaupt brauchst
oder auch: Alle Wege erstellen, nach 51477 filtern und die übrig gebliebene Ways zu Grenzpolygonen zusammensetzen.
hier mal das Kernstück des Programmes, das das für uns normalerweise erledigt.
Nun gut … das ist vllt. etwas geschummelt.
Ich wusste aber auch nicht das der Germany Extrakt auch Teile vom Ausland mit dabei hat.
Also diese ganze Aufbereitung der Wege passiert schon im Zuge meiner Aufbereitung für den MSSQL Server.
Was mir nun noch fehlt sind die Relationen.
Die muss ich nun noch zusammen bauen.