From e10897a22ad447fe283836f2704b3d87052a8d4f Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Sun, 4 Oct 2015 23:28:10 +0000 Subject: [PATCH] add an ST_3DIntersection graphic. Fix graphic link on ST_3DDifference git-svn-id: http://svn.osgeo.org/postgis/trunk@14187 b70326c6-7e19-0410-871a-916f4a2858ee --- doc/html/images/st_3dintersection01.png | Bin 0 -> 5718 bytes doc/reference_sfcgal.xml | 71 +++++++++++++++++++----- 2 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 doc/html/images/st_3dintersection01.png diff --git a/doc/html/images/st_3dintersection01.png b/doc/html/images/st_3dintersection01.png new file mode 100644 index 0000000000000000000000000000000000000000..3568cc185c17d0031d2b862c36635cc46441bcb4 GIT binary patch literal 5718 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 Description - + Return a geometry that is the shared portion between geom1 and geom2. Availability: 2.1.0 &sfcgal_required; &Z_support; &P_support; &T_support; - - - Examples: 3D linestring and Polygon + + + Examples + 3D images were generated using PostGIS and rendering in HTML using X3Dom HTML Javascript rendering library. + + + + + + SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'), + 50, 'quad_segs=2'),0,0,30) AS geom1, + ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'), + 50, 'quad_segs=1'),0,0,30) AS geom2; + + + + + + + Original 3D geometries overlaid. geom2 is shown semi-transparent + + + + + SELECT ST_3DIntersection(geom1,geom2) +FROM ( SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'), + 50, 'quad_segs=2'),0,0,30) AS geom1, + ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'), + 50, 'quad_segs=1'),0,0,30) AS geom2 ) As t; + + + + + + What's left after removing geom2 + + + + + + + + + 3D linestrings and polygons SELECT ST_AsText(ST_3DIntersection(linestring, polygon)) As wkt FROM ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') AS linestring CROSS JOIN ST_GeomFromText('POLYGON((0 0 8, 0 1 8, 1 1 8, 1 0 8, 0 0 8))') AS polygon; @@ -594,7 +635,7 @@ FROM ST_GeomFromText('LINESTRING Z (2 2 6,1.5 1.5 7,1 1 8,0.5 0.5 8,0 0 10)') A - + Original 3D geometries overlaid. geom2 is the part that will be removed. @@ -609,7 +650,7 @@ FROM ( SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'), - + What's left after removing geom2 @@ -622,15 +663,15 @@ FROM ( SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'), - - See Also - - - , - , - - - + + See Also + + + , + , + + + -- 2.40.0