From: Olivier Courtin Date: Thu, 29 Oct 2009 20:31:02 +0000 (+0000) Subject: Change dimension to srsDimension (GML 3.1.1) X-Git-Tag: 1.5.0b1~323 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f54920bfbff9b1fe78826b092a01448236d9008;p=postgis Change dimension to srsDimension (GML 3.1.1) git-svn-id: http://svn.osgeo.org/postgis/trunk@4705 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/postgis/lwgeom_in_gml.c b/postgis/lwgeom_in_gml.c index eb3b97f44..0625c5f6b 100644 --- a/postgis/lwgeom_in_gml.c +++ b/postgis/lwgeom_in_gml.c @@ -1,5 +1,5 @@ /********************************************************************** - * $Id:$ + * $Id$ * * PostGIS - Spatial Types for PostgreSQL * http://postgis.refractions.net @@ -379,7 +379,7 @@ static POINTARRAY* parse_gml_pos(xmlNodePtr xnode, bool *hasz) if (posnode->type != XML_ELEMENT_NODE) continue; if (strcmp((char *) posnode->name, "pos")) continue; - dimension = xmlGetProp(xnode, (xmlChar *) "dimension"); + dimension = xmlGetProp(xnode, (xmlChar *) "srsDimension"); if (dimension == NULL) dim = 2; /* We assume that we are in 2D */ else { dim = atoi((char *) dimension); @@ -445,7 +445,7 @@ static POINTARRAY* parse_gml_poslist(xmlNodePtr xnode, bool *hasz) uchar dims=0; /* Retrieve gml:dimension attribute if any */ - dimension = xmlGetProp(xnode, (xmlChar *) "dimension"); + dimension = xmlGetProp(xnode, (xmlChar *) "srsDimension"); if (dimension == NULL) dim = 2; /* We assume that we are in common 2D */ else { dim = atoi((char *) dimension); diff --git a/regress/in_gml.sql b/regress/in_gml.sql index 71346ae6e..0bb5493da 100644 --- a/regress/in_gml.sql +++ b/regress/in_gml.sql @@ -109,17 +109,17 @@ SELECT 'curve_10', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 43 4 5 6')); -SELECT 'curve_12', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 6 7 8 9')); +SELECT 'curve_12', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 6 7 8 9')); -- ERROR 2 Segments disjoint SELECT 'curve_13', ST_AsEWKT(ST_GeomFromGML('1 2 3 45 6 7 8')); -- ERROR 2 3D Segments disjoint in Z -SELECT 'curve_14', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 0 7 8 9')); +SELECT 'curve_14', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 0 7 8 9')); -- 2 segments, mixed dimension -SELECT 'curve_15', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 7 8')); -SELECT 'curve_16', ST_AsEWKT(ST_GeomFromGML('1 2 3 43 4 5 6 7 8')); +SELECT 'curve_15', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 64 5 7 8')); +SELECT 'curve_16', ST_AsEWKT(ST_GeomFromGML('1 2 3 43 4 5 6 7 8')); @@ -174,8 +174,8 @@ SELECT 'polygon_16', ST_AsEWKT(ST_GeomFromGML('1,2 3,4 5,6 1,27,8 9,10 11,12 7,8')); -- Mixed dimension in rings -SELECT 'polygon_18', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); -SELECT 'polygon_19', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); +SELECT 'polygon_18', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); +SELECT 'polygon_19', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); @@ -228,8 +228,8 @@ SELECT 'surface_16', ST_AsEWKT(ST_GeomFromGML('1,2 3,4 5,6 1,27,8 9,10 11,12 7,813,14 15,16 17,18 13,14')); -- Mixed dimension in rings -SELECT 'surface_18', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); -SELECT 'surface_19', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); +SELECT 'surface_18', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); +SELECT 'surface_19', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); -- ERROR: two patches SELECT 'surface_20', ST_AsEWKT(ST_GeomFromGML('1,2 3,4 5,6 1,27,8 9,10 11,12 7,8')); @@ -290,8 +290,8 @@ SELECT 'mline_5', ST_AsEWKT(ST_GeomFromGML(' 1,2 3,4 5,6 7,8')); -- Mixed dimension -SELECT 'mline_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 67 8 9 10')); -SELECT 'mline_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 45 6 7 8 9 10')); +SELECT 'mline_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 67 8 9 10')); +SELECT 'mline_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 45 6 7 8 9 10')); -- Mixed srsName SELECT 'mline_9', ST_AsEWKT(ST_GeomFromGML('1,2 3,4400000,5000000 400010,5000010')); @@ -320,8 +320,8 @@ SELECT 'mcurve_5', ST_AsEWKT(ST_GeomFromGML('') SELECT 'mcurve_6', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 4 5 6 7 8')); -- Mixed dimension -SELECT 'mcurve_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 67 8 9 10')); -SELECT 'mcurve_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 45 6 7 8 9 10')); +SELECT 'mcurve_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 67 8 9 10')); +SELECT 'mcurve_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 45 6 7 8 9 10')); -- Mixed srsName SELECT 'mcurve_9', ST_AsEWKT(ST_GeomFromGML('1,2 3,4400000,5000000 400010,5000010')); @@ -350,8 +350,8 @@ SELECT 'mpoly_5', ST_AsEWKT(ST_GeomFromGML(' 1,2 3,4 5,6 1,2 7,8 9,10 11,12 7,8')); -- Mixed dimension -SELECT 'mpoly_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); -SELECT 'mpoly_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); +SELECT 'mpoly_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); +SELECT 'mpoly_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); -- Mixed srsName SELECT 'mpoly_9', ST_AsEWKT(ST_GeomFromGML('1,2 3,4 5,6 1,2400000,5000000 400010,5000010 400020,5000020 400000,5000000400100,5000100 400110,5000110 400120,5000120 400100,5000100')); @@ -380,8 +380,8 @@ SELECT 'msurface_5', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 4 5 6 1 2 7 8 9 10 11 12 7 8')); -- Mixed dimension -SELECT 'msurface_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); -SELECT 'msurface_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); +SELECT 'msurface_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8 9 1 2 310 11 12 13 14 15 10 11')); +SELECT 'msurface_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 1 27 8 9 10 11 12 13 14 15 7 8 9')); -- Mixed srsName SELECT 'msurface_9', ST_AsEWKT(ST_GeomFromGML('1,2 3,4 5,6 1,2400000,5000000 400010,5000010 400020,5000020 400000,5000000400100,5000100 400110,5000110 400120,5000120 400100,5000100')); @@ -421,11 +421,11 @@ SELECT 'collection_9', ST_AsEWKT(ST_GeomFromGML('1,2')); -- XML not elements handle -SELECT 'collection_11', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 4 5')); +SELECT 'collection_11', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 4 5')); -- Mixed dimension -SELECT 'collection_12', ST_AsEWKT(ST_GeomFromGML('1 2 34 5')); -SELECT 'collection_13', ST_AsEWKT(ST_GeomFromGML('1 23 4 5')); +SELECT 'collection_12', ST_AsEWKT(ST_GeomFromGML('1 2 34 5')); +SELECT 'collection_13', ST_AsEWKT(ST_GeomFromGML('1 23 4 5')); -- Mixed srsName SELECT 'collection_14', ST_AsEWKT(ST_GeomFromGML('1,2400000,5000000')); @@ -467,7 +467,7 @@ SELECT 'srs_14', ST_AsEWKT(ST_GeomFromGML('1 21 2')); -- Reverse axis with all kind of simples geometry types -SELECT 'srs_16', ST_AsEWKT(ST_GeomFromGML('1 23 4 5 67 8 9 1011 12 13 14 15 16 11 1217 18 19 20 21 22 17 1823 24 25 26 27 28 23 2425 26 27 28 29 30 25 26')); +SELECT 'srs_16', ST_AsEWKT(ST_GeomFromGML('1 23 4 5 67 8 9 1011 12 13 14 15 16 11 1217 18 19 20 21 22 17 1823 24 25 26 27 28 23 2425 26 27 28 29 30 25 26')); @@ -628,19 +628,19 @@ SELECT 'pos_11', ST_AsEWKT(ST_GeomFromGML('1 2@!#$#%')); -- ERROR: 1 dimension -SELECT 'pos_13', ST_AsEWKT(ST_GeomFromGML('1')); +SELECT 'pos_13', ST_AsEWKT(ST_GeomFromGML('1')); -- 2 Dimensions explicit -SELECT 'pos_14', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'pos_14', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: 2 Dimensions explicit but 3 dims -SELECT 'pos_15', ST_AsEWKT(ST_GeomFromGML('1 2 3')); +SELECT 'pos_15', ST_AsEWKT(ST_GeomFromGML('1 2 3')); -- 3 Dimensions explicit -SELECT 'pos_16', ST_AsEWKT(ST_GeomFromGML('1 2 3')); +SELECT 'pos_16', ST_AsEWKT(ST_GeomFromGML('1 2 3')); -- ERROR: 4 dimensions -SELECT 'pos_17', ST_AsEWKT(ST_GeomFromGML('1 2 3 4')); +SELECT 'pos_17', ST_AsEWKT(ST_GeomFromGML('1 2 3 4')); -- @@ -657,20 +657,20 @@ SELECT 'poslist_4', ST_AsEWKT(ST_GeomFromGML(' ')); -- explicit 2 dimension -SELECT 'poslist_5', ST_AsEWKT(ST_GeomFromGML('1 2 3 4')); +SELECT 'poslist_5', ST_AsEWKT(ST_GeomFromGML('1 2 3 4')); -- ERROR: wrong dimension SELECT 'poslist_6', ST_AsEWKT(ST_GeomFromGML(' 1 2 3 4 5 ')); -SELECT 'poslist_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5')); +SELECT 'poslist_7', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5')); -- 2 coord 3D -SELECT 'poslist_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6')); +SELECT 'poslist_8', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6')); -- ERROR: 1 dimension SELECT 'poslist_9', ST_AsEWKT(ST_GeomFromGML('1')); -SELECT 'poslist_10', ST_AsEWKT(ST_GeomFromGML('1')); +SELECT 'poslist_10', ST_AsEWKT(ST_GeomFromGML('1')); -- ERROR: 4 dimensions -SELECT 'poslist_11', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8')); +SELECT 'poslist_11', ST_AsEWKT(ST_GeomFromGML('1 2 3 4 5 6 7 8')); -- ERROR: 3D but no explicit dimension SELECT 'poslist_12', ST_AsEWKT(ST_GeomFromGML('1 2 3'));