返回指定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)