ST_ASX3D
📄字数 817
👁️阅读量 加载中...
功能描述
以 X3D xml 格式的节点元素形式返回几何图形
语法格式
sql
CLOB ST_ASX3D(GEOMETRY g1, INTEGER maxdecimaldigits=15, INTEGER options=0);参数说明
- geom:目标 GEOMETRY 对象。
- maxdecimaldigits:精度。可用于限制输出坐标中小数点后的位数。可选,默认为 15。
- options:选项位字段,可选,默认为 0。
- 0:库顺序 X/Y。
- 1:翻转X和Y。
- 2:GeoSpatial GeoCoordinates 中的输出坐标。默认输出将为
GeoCoordinate geoSystem='"GD" "WE" "longitude_first"'。如果几何图形不在 WGS 84 长纬度 (srid: 4326) 中,此选项将引发错误。 这是目前唯一支持的地理坐标类型。 - 3:即 (2 + 1),默认输出将为
GeoCoordinate geoSystem='"GD" "WE" "latitude_first"'。
函数返回类型
CLOB 类型
使用说明
- 该函数支持 3d 并且不会丢失 z-index。
- 该函数支持多面体曲面。
- 此函数支持三角形和不规则三角网面 (TIN)。
示例
高度为 3 个单位、精度为 6 位的八角棱镜:
sql
SQL> SELECT ST_ASX3D(
ST_TRANSLATE(
ST_FORCE3D(
ST_BUFFER(ST_POINT(10,10),5, 'quad_segs=2')), 0,0,
3)
,6) As x3dfrag;
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| X3DFRAG |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <IndexedFaceSet convex='false' coordIndex='0 1 2 3 4 5 6 7'><Coordinate point='15 10 3 13.535534 6.464466 3 10 5 3 6.464466 6.464466 3 5 10 3 6.464466 13.535534 3 10 15 3 13.535534 13.535534 3 ' /></IndexedFaceSet> |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)TIN:
sql
SQL> SELECT ST_ASX3D(ST_GEOMFROMEWKT('TIN (((
0 0 0,
0 0 1,
0 1 0,
0 0 0
)), ((
0 0 0,
0 1 0,
1 1 0,
0 0 0
))
)')) As x3dfrag;
+-------------------------------------------------------------------------------------------------------------------------+
| X3DFRAG |
+-------------------------------------------------------------------------------------------------------------------------+
| <IndexedTriangleSet index='0 1 2 3 4 5'><Coordinate point='0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0'/></IndexedTriangleSet> |
+-------------------------------------------------------------------------------------------------------------------------+
(1 row)闭合多线串(带孔的多边形的边界):
sql
SQL> SELECT ST_ASX3D( ST_GEOMFROMEWKT('MULTILINESTRING((20 0 10,16 -12 10,0 -16 10,-12 -12 10,-20 0 10,-12 16 10,0 24 10,16 16 10,20 0 10),
(12 0 10,8 8 10,0 12 10,-8 8 10,-8 0 10,-8 -4 10,0 -8 10,8 -4 10,12 0 10))')
) As x3dfrag;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| X3DFRAG |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <IndexedLineSet coordIndex='0 1 2 3 4 5 6 7 0 -1 8 9 10 11 12 13 14 15 8'><Coordinate point='20 0 10 16 -12 10 0 -16 10 -12 -12 10 -20 0 10 -12 16 10 0 24 10 16 16 10 12 0 10 8 8 10 0 12 10 -8 8 10 -8 0 10 -8 -4 10 0 -8 10 8 -4 10 ' /></IndexedLineSet> |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)