ST_GEOMFROMGML
📄字数 1.1K
👁️阅读量 加载中...
功能描述
根据 OGC GML 制图表达生成 几何对象。
语法格式
sql
GEOMETRY ST_GEOMFROMGML(CLOB geomgml, INTEGER srid=0);参数说明
- geomgml:GML 字符串。
- srid: 空间参考系ID。可选,默认值0时,使用 GML 中 srsName 属性。
函数返回类型
GEOMETRY 类型
使用说明
- 仅适用于 GML 的几何部分。 尝试将其用于整个 GML 文档时会引发错误。
- 支持的 OGC GML 版本包括:
- GML 3.2.1 命名空间
- GML 3.1.1 简单功能配置文件 SF-2(向后兼容 GML 3.1.0 和 3.0.0)
- GML 2.1.2
- GML 允许混合维度(例如,同一 MULTIGEOMETRY 内的 2D 和 3D),但此函数不支持。如果一旦发现缺失的 Z 维度,该函数会将整个几何图形转换为 2D。
- GML 支持同一 MULTIGEOMETRY 内的混合空间坐标系 ,但此函数不支持。此函数会将所有子几何图形重新投影到 SRS 根节点。 如果 GML 根节点没有可用的 srsName 属性,则该函数会抛出错误。
- 该函数使用于在 GML 中使用 XLink 功能。
- 该函数支持 3d 并且不会丢失 z-index。
- 该函数支持多面体曲面。
- 此函数支持三角形和不规则三角网面 (TIN)。
注意
函数不支持 SQL/MM 曲线几何形状。
示例
具有 srsName 属性的单个几何图形:
sql
SQL> SELECT TO_CHAR(ST_ASEWKT(ST_GEOMFROMGML('
<gml:LineString xmlns:gml="http://www.opengis.net/gml"
srsName="EPSG:4269">
<gml:coordinates>
-71.16028,42.258729 -71.160837,42.259112 -71.161143,42.25932
</gml:coordinates>
</gml:LineString>')));
+------------------------------------------------------------------------------------+
| EXPR1 |
+------------------------------------------------------------------------------------+
| SRID=4269;LINESTRING(-71.16028 42.258729,-71.160837 42.259112,-71.161143 42.25932) |
+------------------------------------------------------------------------------------+XLink使用法:
sql
SQL> SELECT TO_CHAR(ST_AsEWKT(ST_GeomFromGML('
<gml:LineString xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
srsName="urn:ogc:def:crs:EPSG::4269">
<gml:pointProperty>
<gml:Point gml:id="p1"
><gml:pos
>42.258729 -71.16028</gml:pos
></gml:Point>
</gml:pointProperty>
<gml:pos
>42.259112 -71.160837</gml:pos>
<gml:pointProperty>
<gml:Point xlink:type="simple" xlink:href="#p1"/>
</gml:pointProperty>
</gml:LineString>
')));
+------------------------------------------------------------------------------------+
| EXPR1 |
+------------------------------------------------------------------------------------+
| SRID=4269;LINESTRING(42.258729 -71.16028,-71.160837 42.259112,42.258729 -71.16028) |
+------------------------------------------------------------------------------------+多面体曲面:
sql
SQL> SELECT TO_CHAR(ST_AsEWKT(ST_GeomFromGML('
<gml:PolyhedralSurface xmlns:gml="http://www.opengis.net/gml">
<gml:polygonPatches>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>0 0 0 0 0 1 0 1 1 0 1 0 0 0 0</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>0 0 0 0 1 0 1 1 0 1 0 0 0 0 0</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>0 0 0 1 0 0 1 0 1 0 0 1 0 0 0</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>1 1 0 1 1 1 1 0 1 1 0 0 1 1 0</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>0 1 0 0 1 1 1 1 1 1 1 0 0 1 0</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
<gml:PolygonPatch>
<gml:exterior>
<gml:LinearRing
><gml:posList srsDimension="3"
>0 0 1 1 0 1 1 1 1 0 1 1 0 0 1</gml:posList
></gml:LinearRing>
</gml:exterior>
</gml:PolygonPatch>
</gml:polygonPatches>
</gml:PolyhedralSurface
>')));
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| POLYHEDRALSURFACE(((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)),((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)),((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)),((1 1 0,1 1 1,1 0 1,1 0 0,1 1 0)),((0 1 0,0 1 1,1 1 1,1 1 0,0 1 0)),((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1))) |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+