Thanks, I will try your suggestions! /paul Skickat från min iPhone
> 27 mars 2019 kl. 15:44 skrev Sandro Santilli <[email protected]>: > >> On Tue, Mar 26, 2019 at 02:07:55PM +0000, [email protected] wrote: >> >> UPDATE merged SET topo_geom = topology.toTopoGeom(the_geom, 'roads_topo', >> 1, 0.001); > > [...] > >> I get the following error: >> ERROR: Error: SQL/MM Spatial exception - geometry crosses edge 8618 CONTEXT: >> PL/pgSQL-function topology.totopogeom(geometry,topology.topogeometry,double >> precision) line 112 at FOR over SELECT-rows PL/pgSQL-function >> topology.totopogeom(geometry,character varying,integer,double precision) >> line 88 at assignment >> >> The error appears at different edges when changing the tolerance on >> CreateTopology and toTopoGeom. >> I added the ST_makeValid function call on the input data without any success. >> Does anyone know what I can do? > > My suggestion is to do the topology loading in chunks rather > than all a once, like: > > ALTER TABLE merged ADD id serial PRIMARY KEY; > > UPDATE merged > SET topo_geom = topology.toTopoGeom(the_geom, 'roads_topo', 1) > WHERE id >= 0 AND id < 100; > > UPDATE merged > SET topo_geom = topology.toTopoGeom(the_geom, 'roads_topo', 1) > WHERE id >= 100 AND id < 200; > > ... > > Note I've removed the tolerance parameter, don't use it unless the > chunk fails and you're trying to move things a little bit. > > Another thing to do, if a chunk fails, is to cleanup what you have > in the topology already, before trying again to move on. > > My preferred method would be to use a wrapper function catching > exceptions and moving on if toTopoGeom fails. Often you'll find > that other geometries will get converted fine, so at the end > of the UPDATE call you'd have a number of "topo_geom" values > begin NULL (for the imports that failed) and a number of valid > ones, then you could try again to import the geometries after > some cleaning (and some times you don't even need a new cleaning > as the presence of more geometries would be enough to attract > vertices for snaps..) > > --strk; > _______________________________________________ > postgis-users mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/postgis-users _______________________________________________ postgis-users mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/postgis-users
