[geos-devel] Wondering about points3d into contours

Stephen Woodbridge woodbri at swoodbridge.com
Sat Sep 24 22:38:20 EDT 2011


Hi all,

I wrote code years ago in C that would take a cloud of 3D points insert 
them into a Delaunay triangular surface, then slice the surface 
triangles with a plane(s) into intersecting edges and then composite 
rings from the edges. It seems like we are very close to being able to 
do this in PostGIS. I'm not sure if we have the Delaunay 
triangularization yet.

I'm thinking of something like:

select b.z, a.* from
   st_buildarea(
     st_collect(
       intersection(
         delaunay_triangles(
           select the_geom from points),
           st_translate(
             st_expand(select extents(the_geom) from points, 0.1),
             0.0, 0.0, b.z
           )
         )
       )
     )
   ) as a,
   (select 1.0 * generate_series(2, 10, 2) as z) as b
  group by b.z;

So I'm thinking of something like this is the use case, where this would 
create contour rings for Z at 2, 4, 6, 8, and 10 based on the 
triangulated surface created from the points. My SQL is probably broken, 
but it is only to present the idea.

So any ideas on how to do this now?
Or if Delaunay triangularization will get added to PostGIS or GEOS?

Thanks,
   -Steve


More information about the geos-devel mailing list