x

PLZ Grenzen (Polygone)


  1. PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 06.10.2014 15:47 · [flux]

    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


    • Re: PLZ Grenzen (Polygone) · PeterPablo (Gast) · 06.10.2014 15:50 · [flux]

      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


    • Re: PLZ Grenzen (Polygone) · gormo (Gast) · 06.10.2014 16:06 · [flux]

      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/


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 06.10.2014 18:24 · [flux]

      gormo wrote:

      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


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 07.10.2014 07:55 · [flux]

      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.. ?=


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 07.10.2014 09:34 · [flux]

      Maj0rrush wrote:

      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". 😉 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


    • Re: PLZ Grenzen (Polygone) · gormo (Gast) · 07.10.2014 09:53 · [flux]

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


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 07.10.2014 09:57 · [flux]

      gormo wrote:

      Über http://www.weogeo.com/data/OpenStreetMap_Data.html kriegt man wohl auch bestimmte Daten runtergeladen - ich teste grade mit den Boundaries. Aber die wollen deinen Namen, deine Mailadresse, deine Hausadresse+Telefonnummer haben...

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


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 07.10.2014 12:50 · [flux]

      wambacher wrote:

      Maj0rrush wrote:

      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". 😉 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

      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.

      Gruß,

      Markus


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 07.10.2014 13:06 · [flux]

      Maj0rrush wrote:

      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.

      OMG! MySql 😠

      - 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


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 07.10.2014 14:36 · [flux]

      wambacher wrote:

      Maj0rrush wrote:

      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.

      OMG! MySql 😠

      - 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 :-) 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,

      Markus


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 07.10.2014 15:05 · [flux]

      Maj0rrush wrote:

      Hehe :-) Wie sie alle auf Microsoft SQL Server spucken :-). Der kann mittlerweile schon sehr viel!

      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.

      Also die Deutschland Grenze habe ich als großes Polygon.

      woher?

      Mit dem SQL Server kann ich mir dann alle Relationen mit boundary=postal_code ziehen die darin liegen.

      Die Relationen in OSM haben keine Koordinaten - da ist nix mit "die darin liegenden ziehen".

      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.

      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.


    • Re: PLZ Grenzen (Polygone) · gormo (Gast) · 07.10.2014 15:11 · [flux]

      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 😉

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


    • Re: PLZ Grenzen (Polygone) · gormo (Gast) · 07.10.2014 15:44 · [flux]

      wambacher wrote:

      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
      

      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"


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 08.10.2014 07:45 · [flux]

      gormo wrote:

      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 😉

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

      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!


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 08.10.2014 08:06 · [flux]

      wambacher wrote:

      Also die Deutschland Grenze habe ich als großes Polygon.

      woher?

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


    • Re: PLZ Grenzen (Polygone) · wambacher (Gast) · 08.10.2014 08:27 · [flux]

      Maj0rrush wrote:

      wambacher wrote:

      Also die Deutschland Grenze habe ich als großes Polygon.

      woher?

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

      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.

      Gruss
      walter


    • Re: PLZ Grenzen (Polygone) · Maj0rrush (Gast) · 08.10.2014 09:02 · [flux]

      wambacher wrote:

      Maj0rrush wrote:

      wambacher wrote:

      woher?

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

      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.

      Gruss
      walter

      -)␣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.