nachdem die Geofabrik gestern ihren OSM PLZ Inspektor vergestellt hat, ist mir aufgefallen, dass es in Deutschland noch ein paar Gebiete gibt, in denen die PLZ zusätzlich an admin Relationen getaggt ist. Daher würde ich gerne einen kleinen Aufruf starten, das gemeinsam zu korrigieren.
Da das Geofabrik Tool keine Live-Daten hat, hier eine einfache Vorlage für Overpass (ggf. Punkte durch den gewünschten PLZ (Teil-)Bereich ersetzen):
[out:json][timeout:50];
relation["postal_code"~"^.....$"]["boundary"!="postal_code"]({{bbox}});
out geom;
Ich hab mal den Anfang gemacht und das in Südhessen für die 64xxx und 68xxx Bereiche gamacht.
Die Daten des OSM Inspectors werden zweimal täglich aktualisiert.
Wer eine Live-Analyse möchte (wenige Minuten Replikationsversatz), kann mit Postpass dasselbe in einem kleinen Gebiet tun, was der OSM-Inspector selber auch berechnet. Die folgende Abfrage kann man direkt im Overpass-Turbo einfügen. Die Ausführung erfolgt auf postpass.geofabrik.de.
Die Anfrage sucht nach Relationen im aktuellen Kartenausschnitt, die mit boundary=* und postal_code=* getaggt sind und sich mit anderen Relationen dieser Art überschneiden, sich aber nicht nur berühren.
{{data:sql,server=https://postpass.geofabrik.de/api/0.2/}}
SELECT
a.osm_id AS id1,
b.osm_id AS id2,
a.tags->>'boundary' AS boundary1,
b.tags->>'boundary' AS boundary2,
a.tags->>'postal_code' AS postal_code1,
b.tags->>'postal_code' AS postal_code2,
ST_Intersection(a.geom, b.geom) AS geom
FROM postpass_polygon AS a
JOIN postpass_polygon AS b
ON
a.geom && {{bbox}}
AND a.geom && b.geom
-- jedes Paar nur einmal ausgeben
AND a.osm_id < b.osm_id
-- nur Relationen
AND a.osm_type = 'R' AND b.osm_type = 'R'
-- ST_Intersects ist schneller als ST_Relate
AND ST_Intersects(a.geom, b.geom)
AND ST_Relate(a.geom, b.geom, 'T********')
AND a.tags ?& ARRAY['boundary', 'postal_code']
AND b.tags ?& ARRAY['boundary', 'postal_code']
Ja, dass da auch false-positive dabei sind, war so semi gewollt. @Nakaner hat ja eine entsprechend detailierte Abfrage eingefügt, die das genauer auswertet.