[postgis-users] topology overlapping of edges

Christophe Vergon christophevergon-girtec at orange.fr
Thu Sep 27 23:10:22 PDT 2012


Sandro Santilli a écrit :
> You mean curves ? No, not currently. There's no topological operation
> working for curves so it would not work to do that: can't tell if two
> edges cross each other until ST_Cross(curve,curve) is implemented.

With center and radius of curvature you could transform a curve into an 
edge.

>     It is slow because it checks for intersections and performs noding for
>     everything you add. I'm sure it could be made faster given enough time
>     to carefully profile each use case.

With my datas, I insert 3 000 polygons into a topology in a postgis 
database in 20 ' (estmation not a benchmark). :

wkb parameter is a polygon (bytea)

return_value=SELECT 
topology.TopoGeo_AddPolygon('topo',st_geomfromwkb(:wkb,3942),0);

SELECT CASE : return_value.count
0 : no face created
1 : one face created
 >1 : more than one face

1 :
with IdFA = return_value AS topoelement
  INSERT INTO public.parcelle (,the_topo) VALUES 
(topology.CreateTopoGeom('topo',3,layertopoid,'{{" & idFA & ",3}}')) 
RETURNING idparcelle;

 >1:
Compute Charray as topoelement array with returned values
INSERT INTO public.parcelle (,the_topo) VALUES 
(topology.CreateTopoGeom('topo',3,layertopoid,'" & ChArray & "')) 
RETURNING idparcelle;

Evry edge, node are created.
If to polygons overlaps then when creating the first one face is added., 
when creating the second two faces are added AND in the topogeom each 
object pointe on two faces with one how is the overlap.

fast and safe.










-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120928/9c88b69e/attachment.html>


More information about the postgis-users mailing list