]> granicus.if.org Git - postgis/commitdiff
#2409, ST_Summary support for curve geometries
authorPaul Ramsey <pramsey@cleverelephant.ca>
Wed, 22 Jul 2015 17:05:18 +0000 (17:05 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Wed, 22 Jul 2015 17:05:18 +0000 (17:05 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@13833 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwgeom_debug.c
regress/tickets.sql
regress/tickets_expected

index ffda90f47085464018c0e93dc9b85bec8d21f1b4..a25c6e96bb41116cc10b2890797e5bb392a670d4 100644 (file)
@@ -151,12 +151,19 @@ lwgeom_summary(const LWGEOM *lwgeom, int offset)
        case POINTTYPE:
                return lwpoint_summary((LWPOINT *)lwgeom, offset);
 
+       case CIRCSTRINGTYPE:
+       case TRIANGLETYPE:
        case LINETYPE:
                return lwline_summary((LWLINE *)lwgeom, offset);
 
        case POLYGONTYPE:
                return lwpoly_summary((LWPOLY *)lwgeom, offset);
 
+       case TINTYPE:
+       case MULTISURFACETYPE:
+       case MULTICURVETYPE:
+       case CURVEPOLYTYPE:
+       case COMPOUNDTYPE:
        case MULTIPOINTTYPE:
        case MULTILINETYPE:
        case MULTIPOLYGONTYPE:
index 71687bd3ec830ee6e7bb7a132ba5c3a72afadfd4..ca7558fa75c9f8b9e44102aa9b83fa35dab44143 100644 (file)
@@ -825,6 +825,8 @@ round(ST_Length(St_Segmentize(ST_GeographyFromText('LINESTRING(-89.3000030518 28
 -- #2307 --
 SELECT '#2307', ST_AsText(ST_SnapToGrid(ST_MakeValid('0106000020E6100000010000000103000000010000000A0000004B7DA956B99844C0DB0790FE8B4D1DC010BA74A9AF9444C049AFFC5B8C4D1DC03FC6CC690D9844C0DD67E5628C4D1DC07117B56B0D9844C0C80ABA67C45E1DC0839166ABAF9444C0387D4568C45E1DC010BA74A9AF9444C049AFFC5B8C4D1DC040C3CD74169444C0362EC0608C4D1DC07C1A3B77169444C0DC3ADB40B2641DC03AAE5F68B99844C0242948DEB1641DC04B7DA956B99844C0DB0790FE8B4D1DC0'::geometry),0.0001));
 
+SELECT '#2409', ST_Summary('GEOMETRYCOLLECTION(MULTISURFACE(POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)),CURVEPOLYGON(COMPOUNDCURVE((0 0, 0 1, 1 1, 1 0, 0 0),CIRCULARSTRING(0 0, 0 1, 1 1, 1 2, 0 0)))),TIN(((0 0, 0 1, 1 1, 0 0))))'::geometry);
+
 SELECT '#2415.1', ST_AsText(ST_Multi(
   'COMPOUNDCURVE((0 0, 10 0),CIRCULARSTRING(10 0, 15 1, 20 10))'
 ));
index 860cdc2e107a1f4574ed0fb8ddcbb047cae7752a..c67fbcd13d2ddab4fc35eeced8c865b8b752747a 100644 (file)
@@ -245,6 +245,16 @@ ERROR:  invalid GML representation
 #2110.3|t
 #2145|6792004
 #2307|MULTIPOLYGON(((-41.1932 -7.3257,-41.1616 -7.3257,-41.1569 -7.3257,-41.1569 -7.3483,-41.1932 -7.3483,-41.1932 -7.3257),(-41.1616 -7.3257,-41.1879 -7.3257,-41.1879 -7.3425,-41.1616 -7.3425,-41.1616 -7.3257)))
+#2409|GeometryCollection[B] with 2 elements
+  MultiSurface[] with 2 elements
+    Polygon[] with 1 rings
+   ring 0 has 5 points
+    CurvePolygon[] with 1 elements
+      CompoundCurve[] with 2 elements
+        LineString[] with 5 points
+        CircularString[] with 5 points
+  Tin[] with 1 elements
+    Triangle[] with 4 points
 #2415.1|MULTICURVE(COMPOUNDCURVE((0 0,10 0),CIRCULARSTRING(10 0,15 1,20 10)))
 #2415.2|MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(10 0,15 1,20 0,18 5,20 10,10 10,10 0)))
 #2412|LINESTRING(0 0,10 0,20 0)