返回指定Geometry或Geography对象的GML表示。

语法

text ST_AsGML(geometry geom , integer maxdecimaldigits , integer options);
text ST_AsGML(geography geog , integer maxdecimaldigits , integer options);
text ST_AsGML(integer version , geometry geom , integer maxdecimaldigits , integer options , text nprefix, text id);
text ST_AsGML(integer version , geography geog , integer maxdecimaldigits , integer options , text nprefix, text id);

参数

参数名称

描述

geom

目标Geometry对象。

maxdecimaldigits

最大小数位数。默认为15。

options

在输出的GML中添加CRS信息。默认为0:

  • 0:GML CRS短表达式(如EPSG:4326)。

  • 1:GML CRS长表达式(如urn:ogc:def:crs:EPSG::4326)。

  • 2:仅针对GML 3版本,删除srsDimension属性。

  • 4:仅针对GML 3版本,对于Line使用<LineString>而不是<Curve>标记。

  • 16:声明数据为纬度在前(例如在srid为4326时)。

  • 32:输出Geometry对象的外框。

geog

目标Geography对象。

version

GML版本。默认为2,代表2.1.2版本。可选为3,代表3.1.1版本。

nprefix

命名空间前缀,默认为NULL。可用于指定自定义名称空间前缀。

id

id,默认为NULL。仅针对GML 3版本。

描述

  • 该函数支持Circular Strings、Curves、Polyhedral surfaces、Triangles、Triangulated Irregular Network Surfaces(TIN)和3D对象。

  • 该函数只有在GML 3版本以上支持Polyhedral Surfaces和TIN。

示例

输出长表达式和外包框,并以纬度在前输出:

SELECT ST_AsGML(3, ST_GeomFromText('POINT(116 40)',4326), 5, 32|16|1);
                           st_asgml
---------------------------------------------------------------
 <gml:Envelope srsName="urn:ogc:def:crs:EPSG::4326" srsDimension="2">
     <gml:lowerCorner>40 116</gml:lowerCorner>
  <gml:upperCorner>40 116</gml:upperCorner>
 </gml:Envelope>
(1 row)