# HG changeset patch # User Tom Gottfried # Date 1573649470 -3600 # Node ID 58642179e896b20466882b1d7517cc89ec0b604f # Parent 42e7088824be6fd7e797924b246513053d324c0a Fix possibly invalid geometry output from transformation Transformation to the final SRS (EPSG:4326) might as well generate invalid geometries. Thus, fix the geometries afterwards. The inner ST_MakeValid is still needed to get correct intersection results, but the intermediate transformation to some UTM projection without any further processing is useless. diff -r 42e7088824be -r 58642179e896 pkg/imports/wa.go --- a/pkg/imports/wa.go Wed Nov 13 10:56:51 2019 +0100 +++ b/pkg/imports/wa.go Wed Nov 13 13:51:10 2019 +0100 @@ -101,14 +101,13 @@ INSERT INTO waterway.waterway_area (area, catccl, dirimp) SELECT dmp.geom, $3, $4 FROM ST_GeomFromWKB($1, $2::integer) AS new_area (new_area), - ST_Dump(ST_Transform(ST_CollectionExtract( + ST_Dump(ST_CollectionExtract(ST_MakeValid(ST_Transform( CASE WHEN pg_has_role('sys_admin', 'MEMBER') - THEN ST_MakeValid(ST_Transform(new_area, - best_utm(ST_Transform(new_area, 4326)))) + THEN new_area ELSE ST_Intersection((SELECT a FROM resp), ST_MakeValid(ST_Transform(new_area, (SELECT ST_SRID(a) FROM resp)))) END, - 3), 4326)) AS dmp + 4326)), 3)) AS dmp RETURNING id ` )