From: Olivier Courtin Date: Fri, 10 May 2013 11:40:50 +0000 (+0000) Subject: output COLLECTION of Polygon for TIN and PolyhedralSurface, for ST_ForceSFS (instead... X-Git-Tag: 2.1.0beta2~26 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=782eaa752f4a8ffcdbefce1648f0223098405314;p=postgis output COLLECTION of Polygon for TIN and PolyhedralSurface, for ST_ForceSFS (instead of MultiPolygon). Thanks to Sandro for these input git-svn-id: http://svn.osgeo.org/postgis/trunk@11402 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/cunit/cu_force_sfs.c b/liblwgeom/cunit/cu_force_sfs.c index 07046d087..40e940584 100644 --- a/liblwgeom/cunit/cu_force_sfs.c +++ b/liblwgeom/cunit/cu_force_sfs.c @@ -87,23 +87,23 @@ static void test_sfs_12(void) do_geom_test("TIN(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))", - "MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))"); + "GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8)))"); do_geom_test("GEOMETRYCOLLECTION(TIN(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8))))", - "GEOMETRYCOLLECTION(MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8))))"); + "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8))))"); do_geom_test("GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(TIN(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))))", - "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))))"); + "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8)))))"); do_geom_test("POLYHEDRALSURFACE(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))", - "MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))"); + "GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8)))"); do_geom_test("GEOMETRYCOLLECTION(POLYHEDRALSURFACE(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8))))", - "GEOMETRYCOLLECTION(MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8))))"); + "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8))))"); - do_geom_test("GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYHEDRALSURFACE(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))))", - "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(MULTIPOLYGON(((1 2,3 4,5 6,1 2)),((7 8,9 10,11 12,7 8)))))"); + do_geom_test("GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8)))))", + "GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((1 2,3 4,5 6,1 2)),POLYGON((7 8,9 10,11 12,7 8)))))"); } diff --git a/liblwgeom/lwgeom.c b/liblwgeom/lwgeom.c index cdabd1beb..79ae7458f 100644 --- a/liblwgeom/lwgeom.c +++ b/liblwgeom/lwgeom.c @@ -737,12 +737,11 @@ lwgeom_force_sfs(LWGEOM *geom) lwgeom_free(col->geoms[i]); col->geoms[i] = g; } - - col->type = MULTIPOLYGONTYPE; + col->type = COLLECTIONTYPE; return lwmpoly_as_lwgeom((LWMPOLY*)geom); case POLYHEDRALSURFACETYPE: - geom->type = MULTIPOLYGONTYPE; + geom->type = COLLECTIONTYPE; return (LWGEOM *)geom; /* Collection */