PLZ Grenzen (Polygone)

Hi,

ich wollte mal hören wie ich mit der Overpass Turbo API schnell PLZ Grenzen (als Polygone ? ) ausgeben lassen kann ?

Viele Grüße und Danke,

Markus

Hi Maj0rrush,

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/

Schöne Grüße

Ich würde die PLZ-Boundaries[1] von wambacher nehmen, bin mir aber grade unsicher, was der Unterschied ist.

[1] https://osm.wno-edv-service.de/pcboundaries/

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”.

Also ist ihm wohl mit keiner von beiden geholfen.

@Maj0rrush: gehen auch Shapes? die hab ich quasi griffbereit . (70 MB vom 21.8.14)

Gruss
walter

Super Vielen Dank liebe Community,

wie immer eine schnelle Hilfe :-).

Mich würde aber tatsächlich noch Interessieren wie ich die PLZs selber aus den OSM Daten bilden kann. Kann ich mir die über die Relationen ziehen… ?=

Kommt darauf an, wie man das Wort “kann” interpretiert:

Natürlich “kannst” du dir die Grenzen aus OSM ziehen, wenn du es “kannst”. :wink: 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.

Gruss
walter

Ü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.

[1] https://plugins.qgis.org/plugins/QuickOSM/ , installierbar über das QGis-Pluginsmenü

Danke für den Tip: jetzt hab ich noch einige Datenformate, die ich noch nicht kenne :wink:

Sorry ich habe mich nicht konsequent genug ausgedrückt. :slight_smile:

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.

Gruß,

Markus

OMG! MySql :rage:

  • 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.

tl;dr: Vergiss es.

Gruss
walter

Hehe :slight_smile: 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 :slight_smile: 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,

Markus

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 :wink:

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.

Wie hast du denn den planet-Dump importiert?

Lass dich nicht beirren: man kann auch mit MS SQL Server arbeiten (@wambacher: das ist nicht mysql).

Der MS SQL Server kann inzwischen auch Geometriequeries (d.h. ähnliches wie PostgreSQL/PostGIS), kostet halt nur mehr :wink:

Siehe z.B. http://msdn.microsoft.com/de-de/library/bb933901.aspx

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

Aufruf dann mit

ogr2ogr -skipfailures --config OSM_CONFIG_FILE osmconf.ini -overwrite -f "ESRI Shapefile" saardir saarland-latest.osm

dann kommen die Shapefiles in den Ordner “saardir”

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!

Die hast du mir gestern in deiner ShapeFile Zip bereitgestellt :-).

Hab ich mir schon gedacht - das nenne ich “schummeln” :wink:

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.

Gruss
walter

:slight_smile: 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.

Danke für dein Snippet.