]> granicus.if.org Git - postgis/commitdiff
Implement lwgeom_same for MULTICURVE and MULTISURFACE (#1475)
authorSandro Santilli <strk@keybit.net>
Mon, 16 Jan 2012 10:24:54 +0000 (10:24 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 16 Jan 2012 10:24:54 +0000 (10:24 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8831 b70326c6-7e19-0410-871a-916f4a2858ee

liblwgeom/lwgeom.c
regress/wkb.sql
regress/wkb_expected

index 8bc02b2d54b99ea93b0a56a61c882a08aafb51b0..cdea7bb7ddb7d5cbaa6d4f554d55d9a57c3ea879 100644 (file)
@@ -516,6 +516,8 @@ lwgeom_same(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
        case MULTIPOINTTYPE:
        case MULTILINETYPE:
        case MULTIPOLYGONTYPE:
+       case MULTICURVETYPE:
+       case MULTISURFACETYPE:
        case COMPOUNDTYPE:
        case CURVEPOLYTYPE:
        case POLYHEDRALSURFACETYPE:
index 8027ddab28632def5bbfdd60fce726efd3e4e5f9..ab9cdb0d0568553457b8a90ef54c40dc1e2f7b25 100644 (file)
@@ -348,3 +348,47 @@ select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
  'CURVEPOLYGON ZM EMPTY'
 ::text as g ) as foo;
 
+-- MULTICURVE
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTICURVE EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTICURVE Z EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTICURVE M EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTICURVE ZM EMPTY'
+::text as g ) as foo;
+
+-- MULTISURFACE
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTISURFACE EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTISURFACE Z EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTISURFACE M EMPTY'
+::text as g ) as foo;
+select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'),
+          st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))),
+          encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT
+ 'MULTISURFACE ZM EMPTY'
+::text as g ) as foo;
+
index 4c61dc22b86052914feb3987080bba228340b8ab..3f24fd648529917ce738adb29804e5c51d74337b 100644 (file)
@@ -64,3 +64,11 @@ CURVEPOLYGON EMPTY|010a00000000000000|t|000000000a00000000
 CURVEPOLYGON Z EMPTY|01f203000000000000|t|00000003f200000000
 CURVEPOLYGON M EMPTY|01da07000000000000|t|00000007da00000000
 CURVEPOLYGON ZM EMPTY|01c20b000000000000|t|0000000bc200000000
+MULTICURVE EMPTY|010b00000000000000|t|000000000b00000000
+MULTICURVE Z EMPTY|01f303000000000000|t|00000003f300000000
+MULTICURVE M EMPTY|01db07000000000000|t|00000007db00000000
+MULTICURVE ZM EMPTY|01c30b000000000000|t|0000000bc300000000
+MULTISURFACE EMPTY|010c00000000000000|t|000000000c00000000
+MULTISURFACE Z EMPTY|01f403000000000000|t|00000003f400000000
+MULTISURFACE M EMPTY|01dc07000000000000|t|00000007dc00000000
+MULTISURFACE ZM EMPTY|01c40b000000000000|t|0000000bc400000000