[postgis-users] error: by topology.topogeometry
paul.malm at lfv.se
paul.malm at lfv.se
Thu Mar 28 10:53:26 PDT 2019
Thanks, I will try your suggestions!
/paul
Skickat från min iPhone
> 27 mars 2019 kl. 15:44 skrev Sandro Santilli <strk at kbt.io>:
>
>> On Tue, Mar 26, 2019 at 02:07:55PM +0000, paul.malm at lfv.se 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
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list