Shape mit aktuellen PLZ erstellen?

Moin,

das die OSM-ler aber auch immer alles so kompliziert machen müssen :frowning:

An sich ja eine einfache Aufgabe: Ein Shape mit PLZ erstellen. Ist natürlich alles als Relation verpackt, sonst wäre es ja auch zu einfach.

Also probieren wird doch mal: osm2pgsql-Datenbank, da sind die Relationen immer so schön aufgelöst, geht auch prima mit QGIS zu filtern nach “boundary” = ‘postal_code’ - aber das Feld “postal_code” ist natürlich nicht drin. War das nicht mal in “ref”? Das Feld ist noch da.

Mir ist schleierhaft wer sich so einen Käse ausdenkt. Ist das Absicht, damit man die Daten nicht mehr nutzen kann? Wie ist das nun gedacht, wenn man ein PLZ-Karte braucht?

Vielleicht hat da ja jemand die passende Abfrage grad zur Hand, darf auch fürs osmosis-Schema sein.

LG,

-moenk

such mal die Datei default.style in ergänze “postal_code” oder importiere mit hstore. Ohne hstore sind nur die in der default.style genannten Tag/Value Kombinationen in der osm2pgsql Datenbank

osm2pgsql hat thomas ja schon geklärt.

beim osmosis-schema benutzt du tags->‘postal_code’ allerdings hast du da ja keine fertigen PLZ-Polygone.



select id,tags->'postal_code' postal_code
  from ways
 where tags ? 'postal_code'
 limit 10;

  id  | postal_code 
------+-------------
   92 | 01217
  107 | 01217
  108 | 01217
  109 | 01217
  120 | 01069
  121 | 01217
 2173 | 83607
 2176 | 83624
 2178 | 83624
 2179 | 83624
(10 rows)

gruß
walter

Moin,

dann werd ich wohl das Attribut hinzufügen müssen. Die Datei liegt bei Debian übrigens unter /usr/share/osm2pgsql/default.style falls die mal jemand braucht.

Das mit dem hstore gefällt mir an sich besser, guter Hinweis, besten Dank! Ich weiß aber nicht ob QGIS dann auch die Attribute anzeigt. Von daher bleib ich mal bei den normalen Attributen.

LG,

-moenk

klaro, das hstore-Feld tags taucht bei Qgis in der Spaltenliste auf und kann z.B. mit tags->‘postal_code’ = ‘65388’ in dem Filter verwendet werden.

Nur habe ich mein osm2pgsql-Schema so erweitert, das ich z.B. für die plz eine eigene Spalte habe.

Am besten machst du beides: wichtige Tags in eigene Spalten und alle anderen Tags im hstore. Dann kannst du jederzeit auf Tags zugreifen, die dir heute nicht so wichtig erscheinen.

Gruss
walter

Für Programe, die mit hstore nicht zurechtkommen, bietet sich ein view an, dann kann man tags->‘irgendwas’ einfach als eigenes Feld abfragen:

osm=> create view postleitzahlen as select osm_id,tags->'postal_code' as PLZ,way from osm_polygon where boundary='postal_code';


osm=> select osm_id,PLZ from postleitzahlen where plz like '8080%';
  osm_id  |  plz  
----------+-------
 -1100785 | 80807
 -1100795 | 80801
 -1100788 | 80803
 -1100791 | 80804
 -1100777 | 80802
 -1100803 | 80805
 -1100797 | 80809
(7 rows)

Grüße, Max

Moin,

ich habe dann grad mal eine PBF von der Geofabrik in eine DB geschoben. Wenn ich dann alle boundary=postal_code in QGIS ziehe, sehe ich hier noch eine Lücke: http://i.imgur.com/iOeQjfi.png - vielleicht möchte sich jemand dieses Problemchens annehmen.

LG,

-moenk

Das ist seit gestern gefixt. Da hatte vorgestern jemand Grenzverläufe verbessert.

Es handelt sich um 02999 Lohsa und 02943 Weißwasser, Boxberg