From: Olivier Courtin Date: Wed, 23 Dec 2009 15:48:18 +0000 (+0000) Subject: Add http://www.epsg.org/6.11.2/4326 srsName pattern support (related to CITE WFS... X-Git-Tag: 1.5.0b1~53 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1acbdbc10ac438dd652a58535f818ac5de9c35bc;p=postgis Add http://www.epsg.org/6.11.2/4326 srsName pattern support (related to CITE WFS 1.1 GetFeature-tc17.2. Add related unit tests git-svn-id: http://svn.osgeo.org/postgis/trunk@5050 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/postgis/lwgeom_in_gml.c b/postgis/lwgeom_in_gml.c index 920adce8c..edd2712af 100644 --- a/postgis/lwgeom_in_gml.c +++ b/postgis/lwgeom_in_gml.c @@ -409,6 +409,7 @@ static gmlSrs* parse_gml_srs(xmlNodePtr xnode) * cf WFS 1.1.0 -> 9.2 (p36) * cf ISO 19142 -> 7.9.2.4.4 (p34) * cf RFC 5165 + * cf CITE WFS-1.1 (GetFeature-tc17.2) */ /* SRS pattern like: EPSG:4326 @@ -418,6 +419,7 @@ static gmlSrs* parse_gml_srs(xmlNodePtr xnode) urn:ogc:def:crs:EPSG:6.6:4326 urn:x-ogc:def:crs:EPSG:6.6:4326 http://www.opengis.net/gml/srs/epsg.xml#4326 + http://www.epsg.org/6.11.2/4326 */ if (!strncmp((char *) srsname, "EPSG:", 5)) { @@ -432,6 +434,9 @@ static gmlSrs* parse_gml_srs(xmlNodePtr xnode) "http://www.opengis.net/gml/srs/epsg.xml#", 40)) { sep = '#'; latlon = false; + } else if (!strncmp((char *) srsname, "http://www.epsg.org/", 20)) { + sep = '/'; + latlon = false; } else lwerror("unknown spatial reference system"); /* retrieve the last ':' or '#' char */ diff --git a/regress/in_gml.sql b/regress/in_gml.sql index b4e346747..80a2889f5 100644 --- a/regress/in_gml.sql +++ b/regress/in_gml.sql @@ -445,35 +445,35 @@ SELECT 'srs_4', ST_AsEWKT(ST_GeomFromGML('1 2')); SELECT 'srs_6', ST_AsEWKT(ST_GeomFromGML('1 2')); SELECT 'srs_7', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_8', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR not a valid pattern -SELECT 'srs_8', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_9', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: not a defined SRID -SELECT 'srs_9', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_10', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: SRID is not an int -SELECT 'srs_10', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_11', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: SRID is not only int -SELECT 'srs_11', ST_AsEWKT(ST_GeomFromGML('1 2')); -SELECT 'srs_12', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_12', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_13', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: srsName empty -SELECT 'srs_13', ST_AsEWKT(ST_GeomFromGML('1 2')); -SELECT 'srs_14', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_14', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_15', ST_AsEWKT(ST_GeomFromGML('1 2')); -- ERROR: srsName is defined as -1 -SELECT 'srs_15', ST_AsEWKT(ST_GeomFromGML('1 2')); +SELECT 'srs_16', ST_AsEWKT(ST_GeomFromGML('1 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_17', 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')); +-- Reverse axis with severals multi geometry types +-- TODO --- Reverse axis with severals multi geometry types -- -- GML Namespace diff --git a/regress/in_gml_expected b/regress/in_gml_expected index 264efe670..f03a703fa 100644 --- a/regress/in_gml_expected +++ b/regress/in_gml_expected @@ -133,6 +133,7 @@ srs_4|SRID=4326;POINT(2 1) srs_5|SRID=4326;POINT(2 1) srs_6|SRID=4326;POINT(2 1) srs_7|SRID=4326;POINT(1 2) +srs_8|SRID=4326;POINT(1 2) ERROR: unknown spatial reference system ERROR: unknown spatial reference system ERROR: unknown spatial reference system @@ -141,7 +142,7 @@ ERROR: unknown spatial reference system ERROR: unknown spatial reference system ERROR: unknown spatial reference system ERROR: unknown spatial reference system -srs_16|SRID=4326;GEOMETRYCOLLECTION(POINT(2 1),LINESTRING(4 3,6 5),LINESTRING(8 7,10 9),POLYGON((12 11,14 13,16 15,12 11),(18 17,20 19,22 21,18 17)),POLYGON((24 23,26 25,28 27,24 23),(26 25,28 27,30 29,26 25))) +srs_17|SRID=4326;GEOMETRYCOLLECTION(POINT(2 1),LINESTRING(4 3,6 5),LINESTRING(8 7,10 9),POLYGON((12 11,14 13,16 15,12 11),(18 17,20 19,22 21,18 17)),POLYGON((24 23,26 25,28 27,24 23),(26 25,28 27,30 29,26 25))) ns_1|POINT(1 2) ns_2|POINT(1 2) ns_3|POINT(1 2)