On Tue, Feb 25, 2020 at 01:22:39PM +0000, paul.m...@lfv.se wrote: > Hi, > Where do you mean I can play with the tolerance?
In TopoGeo_addLinestring https://postgis.net/docs/manual-3.1/TopoGeo_AddLineString.html > This is what I have done before the ST_createTopoGeo > SELECT topology.CreateTopology('topo1', 4326)"; > SELECT topology.ST_CreateTopoGeo('topo1', ST_Collect(geom)) from > "countries_first"; > Btw, I'm intending to simplify later on in my SQL command list. You could do something like this: DO $$ DECLARE rec RECORD; tol FLOAT8; BEGIN tol := 0; FOR rec in SELECT gid, (ST_Dump(geom)).geom FROM countries_first LOOP BEGIN IF GeometryType(rec.geom) = 'POLYGON' THEN PERFORM topology.TopoGeo_AddPolygon('topo1', rec.geom, tol); ELSIF GeometryType(rec.geom) = 'LINESTRING' THEN PERFORM topology.TopoGeo_AddLinestring('topo1', rec.geom, tol); ELSIF GeometryType(rec.geom) = 'POINT' THEN PERFORM topology.TopoGeo_AddPoint('topo1', rec.geom, tol); END IF; EXCEPTION WHEN OTHERS THEN RAISE WARNING 'For geometry % we got exception % (%)', rec.id, SQLERRM, SQLSTATE; END; END LOOP; END; $$ LANGUAGE 'plpgsql'; You can tweak the above to do something different rather than raising a WARNING (for example store ID of offending geoms in a table). Then you can look at the offending geometries in isolation, possibly tweaking the "tol" variable. --strk; _______________________________________________ postgis-users mailing list postgis-users@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/postgis-users