From 24d063a3bdf41b966558bfd487d1cee8e2a22772 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Tue, 22 Feb 2011 14:52:51 +0000 Subject: [PATCH] Ticket #816: flag to select over for GML3 line output [RT-SIGTA] git-svn-id: http://svn.osgeo.org/postgis/trunk@6852 b70326c6-7e19-0410-871a-916f4a2858ee --- doc/reference_output.xml | 4 ++++ postgis/lwgeom_export.c | 1 + regress/out_geometry.sql | 6 ++++++ regress/out_geometry_expected | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/doc/reference_output.xml b/doc/reference_output.xml index cbbeddda9..ef7ad0702 100644 --- a/doc/reference_output.xml +++ b/doc/reference_output.xml @@ -504,6 +504,10 @@ st_asgeojson 2: For GML 3 only, remove srsDimension attribute from output. + + 4: For GML 3 only, use <LineString> rather than <Curve> tag for lines. + + 16: Declare that datas are lat/lon (e.g srid=4326). Default is to assume that data are planars. This option is usefull for GML 3.1.1 output only, related to axis order. diff --git a/postgis/lwgeom_export.c b/postgis/lwgeom_export.c index b5d4fdb72..8e63b6896 100644 --- a/postgis/lwgeom_export.c +++ b/postgis/lwgeom_export.c @@ -164,6 +164,7 @@ Datum LWGEOM_asGML(PG_FUNCTION_ARGS) else srs = getSRSbySRID(srid, true); if (option & 2) lwopts &= ~LW_GML_IS_DIMS; + if (option & 4) lwopts |= LW_GML_SHORTLINE; if (option & 16) lwopts |= LW_GML_IS_DEGREE; lwgeom = pglwgeom_deserialize(geom); diff --git a/regress/out_geometry.sql b/regress/out_geometry.sql index c6955c36f..059c7e173 100644 --- a/regress/out_geometry.sql +++ b/regress/out_geometry.sql @@ -43,6 +43,12 @@ SELECT 'gml_prefix_02', ST_AsGML(3, GeomFromEWKT('SRID=4326;POINT(1 2)'), 0, 16, SELECT 'gml_prefix_03', ST_AsGML(2, GeomFromEWKT('SRID=4326;POINT(1 2)'), 0, 16, 'foo'); SELECT 'gml_prefix_04', ST_AsGML(3, GeomFromEWKT('SRID=4326;POINT(1 2)'), 0, 16, 'foo'); +-- LineString +SELECT 'gml_shortline_01', ST_AsGML(3, GeomFromEWKT('LINESTRING(1 2, 3 4)'), 0, 6, ''); +SELECT 'gml_shortline_02', ST_AsGML(3, GeomFromEWKT('LINESTRING(1 2, 3 4)'), 0, 2, ''); +SELECT 'gml_shortline_03', ST_AsGML(3, GeomFromEWKT('MULTILINESTRING((1 2, 3 4), (5 6, 7 8))'), 0, 6, ''); +SELECT 'gml_shortline_04', ST_AsGML(3, GeomFromEWKT('MULTILINESTRING((1 2, 3 4), (5 6, 7 8))'), 0, 2, ''); + -- -- KML -- diff --git a/regress/out_geometry_expected b/regress/out_geometry_expected index 0948d4b8d..f0b189e53 100644 --- a/regress/out_geometry_expected +++ b/regress/out_geometry_expected @@ -18,6 +18,10 @@ gml_prefix_01|1,2 gml_prefix_02|2 1 gml_prefix_03|1,2 gml_prefix_04|2 1 +gml_shortline_01|1 2 3 4 +gml_shortline_02|1 2 3 4 +gml_shortline_03|1 2 3 45 6 7 8 +gml_shortline_04|1 2 3 45 6 7 8 ERROR: GetProj4StringSPI: Cannot find SRID (10) in spatial_ref_sys ERROR: Input geometry has unknown (-1) SRID kml_empty_geom| -- 2.50.1