]> granicus.if.org Git - postgis/commitdiff
Ticket #816: flag to select <LineString> over <Curve> for GML3 line output [RT-SIGTA]
authorSandro Santilli <strk@keybit.net>
Tue, 22 Feb 2011 14:52:51 +0000 (14:52 +0000)
committerSandro Santilli <strk@keybit.net>
Tue, 22 Feb 2011 14:52:51 +0000 (14:52 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@6852 b70326c6-7e19-0410-871a-916f4a2858ee

doc/reference_output.xml
postgis/lwgeom_export.c
regress/out_geometry.sql
regress/out_geometry_expected

index cbbeddda9a99ae0fd56d388d578e4bfd111554ad..ef7ad0702213bbaebf1083ffcfd6fc28a3e7a053 100644 (file)
@@ -504,6 +504,10 @@ st_asgeojson
                                                                  <para>2: For GML 3 only, remove srsDimension attribute from output.</para>
                                                                </listitem>
 
+                                                               <listitem>
+                                                                 <para>4: For GML 3 only, use &lt;LineString&gt; rather than &lt;Curve&gt; tag for lines.</para>
+                                                               </listitem>
+
                                                                <listitem>
                                                                  <para>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.</para>
                                                                </listitem>
index b5d4fdb722164329b7d94be80510317d3ca2e0af..8e63b6896d136c76456820665b90bdcb7d5ca25a 100644 (file)
@@ -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);
index c6955c36f3aaac0542e76df8c3852f59aca81be2..059c7e1736c812179c878c75340a731b5af8f7b4 100644 (file)
@@ -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
 --
index 0948d4b8d27d6802ef1a7fc23da81fde92bf6828..f0b189e53faee38f75e367785f77290cd9641670 100644 (file)
@@ -18,6 +18,10 @@ gml_prefix_01|<Point srsName="EPSG:4326"><coordinates>1,2</coordinates></Point>
 gml_prefix_02|<Point srsName="EPSG:4326"><pos srsDimension="2">2 1</pos></Point>
 gml_prefix_03|<foo:Point srsName="EPSG:4326"><foo:coordinates>1,2</foo:coordinates></foo:Point>
 gml_prefix_04|<foo:Point srsName="EPSG:4326"><foo:pos srsDimension="2">2 1</foo:pos></foo:Point>
+gml_shortline_01|<LineString><posList>1 2 3 4</posList></LineString>
+gml_shortline_02|<Curve><segments><LineStringSegment><posList>1 2 3 4</posList></LineStringSegment></segments></Curve>
+gml_shortline_03|<MultiCurve><curveMember><LineString><posList>1 2 3 4</posList></LineString></curveMember><curveMember><LineString><posList>5 6 7 8</posList></LineString></curveMember></MultiCurve>
+gml_shortline_04|<MultiCurve><curveMember><Curve><segments><LineStringSegment><posList>1 2 3 4</posList></LineStringSegment></segments></Curve></curveMember><curveMember><Curve><segments><LineStringSegment><posList>5 6 7 8</posList></LineStringSegment></segments></Curve></curveMember></MultiCurve>
 ERROR:  GetProj4StringSPI: Cannot find SRID (10) in spatial_ref_sys
 ERROR:  Input geometry has unknown (-1) SRID
 kml_empty_geom|