From dfbbb65b5ec772cb83557b3ae760c6477648d69b Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 3 Dec 2012 14:10:18 +0000 Subject: [PATCH] Fix SRID in ST_Homogenize output with collection input (#2129) git-svn-id: http://svn.osgeo.org/postgis/trunk@10783 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/cunit/cu_homogenize.c | 14 +++++++++++++- liblwgeom/lwhomogenize.c | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/liblwgeom/cunit/cu_homogenize.c b/liblwgeom/cunit/cu_homogenize.c index 811a06796..19361d01d 100644 --- a/liblwgeom/cunit/cu_homogenize.c +++ b/liblwgeom/cunit/cu_homogenize.c @@ -210,6 +210,18 @@ static void test_geom(void) do_geom_test("SRID=4326;GEOMETRYCOLLECTION EMPTY", "SRID=4326;GEOMETRYCOLLECTION EMPTY"); + /* See http://trac.osgeo.org/postgis/ticket/2129 */ + do_geom_test("SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 0))", + "SRID=4326;POINT(0 0)"); + + /* See http://trac.osgeo.org/postgis/ticket/2129 */ + do_geom_test("SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT(0 0, 1 2))", + "SRID=4326;MULTIPOINT(0 0,1 2)"); + + /* See http://trac.osgeo.org/postgis/ticket/2129 */ + do_geom_test("SRID=4326;GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 0))", + "SRID=4326;GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 0))"); + do_geom_test("SRID=4326;POINT(1 2)", "SRID=4326;POINT(1 2)"); @@ -249,4 +261,4 @@ CU_TestInfo homogenize_tests[] = PG_TEST(test_coll_curve), CU_TEST_INFO_NULL }; -CU_SuiteInfo homogenize_suite = {"Homogenize Suite", NULL, NULL, homogenize_tests}; +CU_SuiteInfo homogenize_suite = {"homogenize", NULL, NULL, homogenize_tests}; diff --git a/liblwgeom/lwhomogenize.c b/liblwgeom/lwhomogenize.c index a074b68e2..f2ee9dc5f 100644 --- a/liblwgeom/lwhomogenize.c +++ b/liblwgeom/lwhomogenize.c @@ -145,6 +145,7 @@ lwcollection_homogenize(const LWCOLLECTION *col) { outgeom = lwcollection_as_lwgeom(outcol); } + outgeom->srid = col->srid; } /* Bah, more than out type, return anonymous collection */ else if ( ntypes > 1 ) -- 2.50.1