[postgis-users] Topology: cannot delete slivers (or gaps)

Sandro Santilli strk at keybit.net
Wed Nov 19 03:27:15 PST 2014


On Tue, Nov 18, 2014 at 08:26:29PM +0100, Rémi Cura wrote:
> This is suprising indeed.
> Im my test using the v.out.postgis was still way faster than constructing
> with postgis topology (about x3 I think).
> 
> Are you using v.out.postgis -l, with grass 7?

Yes.

The topology was pretty big, maybe that's the difference.
Here's the dataset (not sure if still accessible):
http://lists.osgeo.org/pipermail/postgis-devel/2014-January/024085.html

GRASS 7.0.0beta3 (world):~ > v.info -t map=million_poly_topo1
nodes=3247661
points=0
lines=0
boundaries=5102420
centroids=1161248
areas=1855936
islands=1177
primitives=6263668
map3d=0

> Now I think I should have used a python way from within grass (grass offers
> full binding, so it should be doable to loop trough grass internal topology
> and convert it to postgis topology)
>
> I tried to reach grass dev several time to try to improve the postgis
> export, I had no answer.

That's unfortunate.

> My intuition is that the slowness comes from the fact that grass tries to
> write  edge by edge , and each time the edge_data trigger are triggered.
> The correct way would be to compute full topology structure, then
> deactivate trigger, then fill table , then reactivate trigger.

Or maybe it has to build the next_{left,right}_face info too.
Enabling PostgreSQL logging should tell (but better not done with
a ~2 million polygons topology).

Oh how better it would be to speed up topology building in PostGIS :)

--strk;

  ()   Free GIS & Flash consultant/developer
  /\   http://strk.keybit.net/services.html


More information about the postgis-users mailing list