You are not logged in.

Announcement

*** NOTICE: By 30th of September 2022 the forum.openstreetmap.org will be retired, please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators. We expect the migration of data will be finished by that date, you can follow its progress here.***

#26 2014-11-29 17:03:32

Duvodas
Member
Registered: 2013-01-17
Posts: 31

Re: PLZ von Gemeinden - Datenbankabfrage?

Danke schonmal für die zahlreiche Hilfe. Ich habe das Problem gleich mal als Anlass genommen mich in die Overpass QL einzuarbeiten wink Aber verstehe natürlich noch nicht alles...

Die Idee, die Rand nodes aus dem set zu nehmen und auf den Rest is_in anzuwenden klingt gut. Leider funktionierts aber bei couchmapper's Vorschlägen (Post #9 und #13) noch nicht vollständig richtig.
Für die Gemeinde Merchweiler ("de:amtlicher_gemeindeschluessel"="10043113") erhält man in beiden Fällen die PLZ 66589, 66299, 66287. Laut Wikipedia ist 66589 richtig. Zunächst dachte ich, dass es sich hier um eine lokale Mapping Ungenauigkeit handelt, also dass die "Nachbar-PLZ-area" die Gemeindegrenze an einer Stelle nur um wenige Meter überschneidet. Ich habe mir dieses Beispiel in JOSM angesehen. Dem ist aber nicht so. Die Grenze zwischen PLZ 66589 und 66299 verläuft über die identischen nodes wie auch die Grenze der Gemeinde. Der Logik entsprechend sollte 66299 also nicht gefunden werden.
Wo steckt der Fehler?

Offline

#27 2014-11-29 17:10:43

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: PLZ von Gemeinden - Datenbankabfrage?

Das liegt an folgendem Knoten: http://www.openstreetmap.org/node/652433309

Dummerweise überlebt der die (.n2; - .n1;) Geschichte und zieht dann zwei benachbarte postal_areas mit in das Ergebnis.

Edit: klassisches User too stupid problem. Hab heute beim Kommentieren ein ">" durch ein "node(r)" ersetzt. Das war Blödsinn, ist gefixt.

Last edited by couchmapper (2014-11-29 17:21:41)

Offline

#28 2014-11-29 23:34:34

Duvodas
Member
Registered: 2013-01-17
Posts: 31

Re: PLZ von Gemeinden - Datenbankabfrage?

Ah ok gut, ich hatte mich auch schon gefragt ob ich völlig blöd bin und erst (vor deinem hilfreichen Kommentieren) andere Ausgaben gesehen hatte wink

Nun gibt es noch solche Fälle, wie ich sie schon angesprochen habe:

Eppelborn ("de:amtlicher_gemeindeschluessel"="10043111") liefert die PLZ 66571 und 66822. Nur 66571 ist vermutlich richtig. Das liegt daran, dass lediglich das Gebiet einer Shell Tankstelle (ID 139856533), welche sich innerhalb der Eppelborn Fläche befindet, der PLZ 66822 zugeordnet ist. Der Rest dieser PLZ liegt außerhalb von Eppelborn.
Kann man diese "kleinen Ungenauigkeiten" herausfiltern, indem man verlangt, dass z.B. mindestens 50 nodes des sets innerhalb einer area mit dem tag "boundary"="postal_code" liegen müssen?

Last edited by Duvodas (2014-11-29 23:36:23)

Offline

#29 2014-11-30 10:12:09

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: PLZ von Gemeinden - Datenbankabfrage?

Filtern geht nicht, aber wie wär's mit Zählen: http://overpass-turbo.eu/s/6jb

/* 
   Zur administrativen Grenze von Eppelborn alle Postal_code boundaries samt
   Zahl der jeweils dort enthaltenen Knoten ausgeben          - couchmapper 301114
*/   

[timeout:300]
[out:csv( postal_code, ::count)];

area["boundary"="administrative"]["de:amtlicher_gemeindeschluessel"="10043111"]->.a1;
rel(pivot.a1); > -> .n1;
node[~"."~"."](area.a1) -> .n2;
(.n2; - .n1;)->.n0;
.n0 is_in;
area._["boundary"="postal_code"];
foreach->.pc (
  .pc out;
  node[~"."~"."](area.pc)->.pcn;
  (.pcn; .n0;)->.alles;
  (.pcn; - .n0;)->.pcn_ohne_n0;
  (.n0; - .pcn;)->.n0_ohne_pcn;
  ((.alles; - .pcn_ohne_n0;) - .n0_ohne_pcn;);
  out count;
);  
postal_code	@count
66571	
	851
66822	
	1

Geht natürlich auch für alle Gemeinden im Saarland: http://overpass-turbo.eu/s/6j9

Ist aber alles nicht mehr so ganz im sweet spot von Overpass API: hier hätte ich wohl schon längst zu PostGIS gegriffen cool

Last edited by couchmapper (2014-11-30 10:38:14)

Offline

#30 2014-11-30 10:49:19

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

Ich würde auf keinen Fall davon ausgehen, dass die Wikipedia-Angaben richtig/vollständig sind. Auch eine Abfrage bei der DPAG liefert nicht alle PLZ einer Gemeinde.

Offline

#31 2014-11-30 11:50:15

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

kommen wir mal von der Theorie zur Praxis:

select -plz.osm_id, plz.note,-boundary.osm_id,boundary.name 
  from planet_osm_polygon plz,
       planet_osm_polygon boundary
 where boundary.boundary='administrative'
   and plz.boundary = 'postal_code'
   and length(boundary.tags->'de:amtlicher_gemeindeschluessel') >5
   and st_intersects (boundary.way,  plz.way)
 order by boundary.name, plz.note;

ergibt http://osm.wno-edv-service.de:82/images … meinde.txt

Gruss
walter

ps: um die Umlaute und andere Feinheiten kümmere ich mich später mal.

Offline

#32 2014-11-30 11:57:49

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: PLZ von Gemeinden - Datenbankabfrage?

wambacher wrote:

um die Umlaute und andere Feinheiten kümmere ich mich später mal.

Gut, dann fangen wir mal bei den eigentlichen Daten an: cool

    3346971 | 66265 Heusweiler                                                                     | 1187149 | Eppelborn
    1184805 | 66557 Illingen                                                                       | 1187149 | Eppelborn
    1184803 | 66571 Eppelborn                                                                      | 1187149 | Eppelborn
    3348207 | 66636 Tholey                                                                         | 1187149 | Eppelborn
    3348209 | 66646 Marpingen                                                                      | 1187149 | Eppelborn
    3348204 | 66822 Lebach                                                                         | 1187149 | Eppelborn

Dat kann so nicht stimmen... da dürften maximal 66571 und 66822 rauskommen (siehe vorheriger Post).

Offline

#33 2014-11-30 12:14:57

TobWen
Member
From: Ruhrgebiet
Registered: 2009-03-31
Posts: 1,112

Re: PLZ von Gemeinden - Datenbankabfrage?

Gehrke wrote:

Auch eine Abfrage bei der DPAG liefert nicht alle PLZ einer Gemeinde.

Hast du ein Beispiel hierzu?


Was macht der RVR mit OpenStreetMap? https://forum.openstreetmap.org/viewtopic.php?id=63052
Aktuelle Luftbilder des RVRs (Ruhrgebiet) http://forum.openstreetmap.org/viewtopic.php?id=28511

Offline

#34 2014-11-30 12:33:35

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

couchmapper wrote:

Dat kann so nicht stimmen... da dürften maximal 66571 und 66822 rauskommen (siehe vorheriger Post).

Jo, ist logisch. Wieder mal das blöde st_intersects, was den Rand mit nimmt. Nun denn, dann buffern wir halt.
Die 2-3, die ich überprüft hatte, waren natürlich sauber sad

Gruss
walter

Offline

#35 2014-11-30 13:19:47

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

TobWen wrote:
Gehrke wrote:

Auch eine Abfrage bei der DPAG liefert nicht alle PLZ einer Gemeinde.

Hast du ein Beispiel hierzu?

23701 Süsel. Es gibt in Süsel auch Adressen in PLZ 23684. Das ist aber nur eins von zig oder hunderten Beispielen.

Last edited by Gehrke (2014-11-30 13:22:20)

Offline

#36 2014-11-30 13:21:58

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

wambacher wrote:

Wieder mal das blöde st_intersects, was den Rand mit nimmt.

ST_Relate

Offline

#37 2014-11-30 13:42:49

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

Gehrke wrote:
wambacher wrote:

Wieder mal das blöde st_intersects, was den Rand mit nimmt.

ST_Relate

ach du grüne neune, da muß ich mich mal reinknien.

Danke für den Tip
walter

uii, wenn ich eine Testauswertung mit Eppelborn und Umgebung füttere, kommt tatsächlich das Richtige raus:

select -b.osm_id border,b.name,-p.osm_id pcborder,p.note 
  from planet_osm_polygon b,
       planet_osm_polygon p
 where b.osm_id in (-1187149)
   and p.osm_id in (-3346971,-1184805,-1184803,-3348207,-3348209,-3348204)
   and b.way && p.way
   and ST_Relate(b.way,p.way,'T********')
 order by b.name,b.osm_id desc, p.note
;

 border  |   name    | pcborder |      note       
---------+-----------+----------+-----------------
 1187149 | Eppelborn |  1184803 | 66571 Eppelborn
 1187149 | Eppelborn |  3348204 | 66822 Lebach
(2 rows)

Last edited by wambacher (2014-11-30 14:06:43)

Offline

#38 2014-11-30 13:46:20

TobWen
Member
From: Ruhrgebiet
Registered: 2009-03-31
Posts: 1,112

Re: PLZ von Gemeinden - Datenbankabfrage?

Gehrke wrote:

23701 Süsel. Es gibt in Süsel auch Adressen in PLZ 23684. Das ist aber nur eins von zig oder hunderten Beispielen.

Woran machst du fest, dass sie dort wirklich (noch) gültig ist?


Was macht der RVR mit OpenStreetMap? https://forum.openstreetmap.org/viewtopic.php?id=63052
Aktuelle Luftbilder des RVRs (Ruhrgebiet) http://forum.openstreetmap.org/viewtopic.php?id=28511

Offline

#39 2014-11-30 14:56:57

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

TobWen wrote:
Gehrke wrote:

23701 Süsel. Es gibt in Süsel auch Adressen in PLZ 23684. Das ist aber nur eins von zig oder hunderten Beispielen.

Woran machst du fest, dass sie dort wirklich (noch) gültig ist?

An den Straßennamen dort, die für Pönitz gelistet sind.

Offline

#40 2014-11-30 15:11:04

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

so, 2. und hoffentlich erfolgreicher Versuch:

select -b.osm_id,b.name,p.note 
  from planet_osm_polygon b,
       planet_osm_polygon p
 where b.boundary='administrative'
   and p.boundary = 'postal_code'
   and length(b.tags->'de:amtlicher_gemeindeschluessel') >5
   and b.way && p.way
   and ST_Relate(b.way,p.way,'T********')
 order by b.name,b.osm_id desc, p.note;

http://osm.wno-edv-service.de:82/images … relate.txt

Gruss
walter

Last edited by wambacher (2014-11-30 15:44:08)

Offline

#41 2014-11-30 15:17:33

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: PLZ von Gemeinden - Datenbankabfrage?

Jau! Würde noch die ungefähre Fläche mit einbauen, damit man mini-fatzen besser sehen kann:
ceil(st_area(st_intersection(b.way,p.way))) as area

Offline

#42 2014-11-30 15:25:41

Duvodas
Member
Registered: 2013-01-17
Posts: 31

Re: PLZ von Gemeinden - Datenbankabfrage?

Ok die Daten sehen gar nicht so schlecht aus, wenn man die rechte Spalte als Gemeindename heranzieht. Diesmal habe ich aber k.A. wie sie zustande kommen... Kannst du noch die Gemeindeschlüssel dazu ausgeben?

Offline

#43 2014-11-30 15:30:02

TobWen
Member
From: Ruhrgebiet
Registered: 2009-03-31
Posts: 1,112

Re: PLZ von Gemeinden - Datenbankabfrage?

Gehrke wrote:

An den Straßennamen dort, die für Pönitz gelistet sind.

Wieso tun alle hier immer so geheimnisvoll? Sag' doch einfach mal welche...


Was macht der RVR mit OpenStreetMap? https://forum.openstreetmap.org/viewtopic.php?id=63052
Aktuelle Luftbilder des RVRs (Ruhrgebiet) http://forum.openstreetmap.org/viewtopic.php?id=28511

Offline

#44 2014-11-30 15:43:34

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

couchmapper wrote:

Jau! Würde noch die ungefähre Fläche mit einbauen, damit man mini-fatzen besser sehen kann:
ceil(st_area(st_intersection(b.way,p.way))) as area

fatzen? http://www.enzyklo.de/Begriff/Fatzen

oder meintest du Fetzen?

Offline

#45 2014-11-30 15:57:44

couchmapper
Member
Registered: 2013-02-17
Posts: 462

Re: PLZ von Gemeinden - Datenbankabfrage?

wambacher wrote:

meintest du Fetzen?

Ja genau, das war moselfränkisch. LOL.

Offline

#46 2014-11-30 16:28:31

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

couchmapper wrote:
wambacher wrote:

meintest du Fetzen?

Ja genau, das war moselfränkisch. LOL.

ok, mach ich halt Fatzen - und die AGS kommen auch. Dauert nur, da die Abfrage nicht gerade flott geht.

Offline

#47 2014-11-30 17:50:48

Duvodas
Member
Registered: 2013-01-17
Posts: 31

Re: PLZ von Gemeinden - Datenbankabfrage?

Super, danke!

Offline

#48 2014-11-30 20:12:20

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

feddich: http://osm.wno-edv-service.de:82/images … d_area.txt

Musste den Job nochmals laufen lassen, da die Formel von couchmapper nicht ganz passte.

select -b.osm_id osm_id,b.name,
       b.tags->'de:amtlicher_gemeindeschluessel' ags, 
       p.note,
       st_area(geography(st_intersection(b.way,p.way))) / 1000000 area
  from planet_osm_polygon b,
       planet_osm_polygon p
 where b.boundary='administrative'
   and p.boundary = 'postal_code'
   and length(b.tags->'de:amtlicher_gemeindeschluessel') >5
   and b.way && p.way
   and ST_Relate(b.way,p.way,'T********')
 order by b.name,b.osm_id desc, p.note;

Area ist in Km²

Gruss
walter

Offline

#49 2014-11-30 20:41:40

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

TobWen wrote:
Gehrke wrote:

An den Straßennamen dort, die für Pönitz gelistet sind.

Wieso tun alle hier immer so geheimnisvoll? Sag' doch einfach mal welche...

Ich habe das nicht alles im Kopf, sondern muss es erst nachschlagen. Außerdem habe ich anderes zu tun.

Messenkamp ist eine Straße, die in Süsel liegt und bei Pönitz gelistet ist. Die Siedlung heißt Broderdammskamp.
Ist aber auch ohne Geheimwissen herauszufinden, wenn man sich in OSM die PLZ-Relation 23684 anschaut.

Last edited by Gehrke (2014-11-30 20:42:22)

Offline

#50 2014-11-30 20:59:30

Gehrke
Member
From: Bremen, DE
Registered: 2013-10-19
Posts: 1,894
Website

Re: PLZ von Gemeinden - Datenbankabfrage?

Ich muss nochmal Salz in die Wunde streuen. Auch OSM vermag nicht, die absolut richtige Antwort zu liefern. Das liegt natürlich einerseits an Spezialfällen, die nicht richtig in den postal boundaries abgebildet sind. Andererseits gibt es Probleme mit unbewohnten Gemeindeexklaven, die aber nicht als PLZ-Exklaven gemappt sind, was eigentlich auch keinen Sinn macht, weil es dort ja keine Adressen gibt.

Zweite schlechte Nachricht: Ob es in einer Gemeindeexklave wirklich keine Adressen gibt, kann OSM auch (noch) nicht sicher sagen.

Last edited by Gehrke (2014-11-30 21:00:59)

Offline

Board footer

Powered by FluxBB