diff --git a/layers/housenumber/housenumber_centroid.sql b/layers/housenumber/housenumber_centroid.sql index c7231491..494f5e45 100644 --- a/layers/housenumber/housenumber_centroid.sql +++ b/layers/housenumber/housenumber_centroid.sql @@ -12,6 +12,19 @@ CREATE TABLE IF NOT EXISTS housenumber.osm_ids -- etldoc: osm_housenumber_point -> osm_housenumber_point CREATE OR REPLACE FUNCTION convert_housenumber_point(full_update boolean) RETURNS void AS $$ + -- Delete housenumber duplicates + DELETE FROM osm_housenumber_point + WHERE osm_id IN ( + SELECT pt.osm_id + FROM osm_housenumber_point pt + INNER JOIN osm_housenumber_point poly + ON (ST_GeometryType(poly.geometry) = 'ST_Polygon' + AND ST_GeometryType(pt.geometry) = 'ST_Point' + AND pt.geometry && poly.geometry + AND pt.housenumber = poly.housenumber + ) + ); + UPDATE osm_housenumber_point SET geometry = CASE