Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_3DUNION

📄字数 839
👁️阅读量 加载中...

功能描述

返回3D几何体的并集。

语法格式

sql
GEOMETRY ST_3DUNION(GEOMETRY geom1, GEOMETRY geom2);
GEOMETRY ST_3DUNION(GEOMETRY SET g1field);

参数说明

  • geom1:第一个目标GEOMETRY对象。
  • geom2:第二个目标GEOMETRY对象。
  • g1field:GEOMETRY对象在数据集中的字段。

函数返回类型

GEOMETRY类型

使用说明

  • 该函数可以是聚合函数,输入一个几何对象集合。
  • 该函数需要SFCGAL库支持。
  • 该函数支持3D对象,并且不会删除Z坐标。
  • 该函数支持多面体表面(POLYHEDRALSURFACE)、三角形(TRIANGLE)、不规则三角形格网(Triangulated Irregular Network,TIN)类型几何对象。

示例

  1. 使用ST_AsX3D生成两个原始的3D图像geom1和geom2:

    sql
    SQL> SELECT
                TO_CHAR(ST_AsX3D(ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),
                                                50, 'quad_segs=2'),0,0,30))) AS geom1,
                TO_CHAR(ST_AsX3D(ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'),
                                                50, 'quad_segs=1'),0,0,30))) AS geom2;
    
    +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               GEOM1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                        GEOM2                                                                                                                                                                                                                                        |
    +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | <IndexedFaceSet convex='false'  coordIndex='0 1 2 3 4 5 6 7 -1 8 9 10 11 12 13 14 15 -1 16 17 18 19 -1 20 21 22 23 -1 24 25 26 27 -1 28 29 30 31 -1 32 33 34 35 -1 36 37 38 39 -1 40 41 42 43 -1 44 45 46 47'><Coordinate point='150 90 0 135.35533905932738 54.64466094067263 0 100 40 0 64.64466094067262 54.64466094067262 0 50 90 0 64.64466094067262 125.35533905932738 0 99.99999999999999 140 0 135.35533905932738 125.35533905932738 0 150 90 30 135.35533905932738 125.35533905932738 30 99.99999999999999 140 30 64.64466094067262 125.35533905932738 30 50 90 30 64.64466094067262 54.64466094067262 30 100 40 30 135.35533905932738 54.64466094067263 30 150 90 0 150 90 30 135.35533905932738 54.64466094067263 30 135.35533905932738 54.64466094067263 0 135.35533905932738 54.64466094067263 0 135.35533905932738 54.64466094067263 30 100 40 30 100 40 0 100 40 0 100 40 30 64.64466094067262 54.64466094067262 30 64.64466094067262 54.64466094067262 0 64.64466094067262 54.64466094067262 0 64.64466094067262 54.64466094067262 30 50 90 30 50 90 0 50 90 0 50 90 30 64.64466094067262 125.35533905932738 30 64.64466094067262 125.35533905932738 0 64.64466094067262 125.35533905932738 0 64.64466094067262 125.35533905932738 30 99.99999999999999 140 30 99.99999999999999 140 0 99.99999999999999 140 0 99.99999999999999 140 30 135.35533905932738 125.35533905932738 30 135.35533905932738 125.35533905932738 0 135.35533905932738 125.35533905932738 0 135.35533905932738 125.35533905932738 30 150 90 30 150 90 0' /></IndexedFaceSet> | <IndexedFaceSet convex='false'  coordIndex='0 1 2 3 -1 4 5 6 7 -1 8 9 10 11 -1 12 13 14 15 -1 16 17 18 19 -1 20 21 22 23'><Coordinate point='130 80 0 80 30 0 30 80 0 79.99999999999999 130 0 130 80 30 79.99999999999999 130 30 30 80 30 80 30 30 130 80 0 130 80 30 80 30 30 80 30 0 80 30 0 80 30 30 30 80 30 30 80 0 30 80 0 30 80 30 79.99999999999999 130 30 79.99999999999999 130 0 79.99999999999999 130 0 79.99999999999999 130 30 130 80 30 130 80 0' /></IndexedFaceSet> |
    +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2. 使用ST_AsX3D生成图像geom1和geom2的并集。

    sql
    SQL> SELECT TO_CHAR(ST_AsX3D(ST_3DUNION(geom1,geom2),3))
                                     FROM ( SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),
                                     50, 'quad_segs=2'),0,0,30) AS geom1,
                                     ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'),
                                     50, 'quad_segs=1'),0,0,30) AS geom2 ) As t;
    
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           EXPR1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | <IndexedFaceSet convex='false'  coordIndex='0 1 2 -1 3 4 5 -1 6 7 8 -1 9 10 11 -1 12 13 14 -1 15 16 17 -1 18 19 20 -1 21 22 23 -1 24 25 26 -1 27 28 29 -1 30 31 32 -1 33 34 35 -1 36 37 38 -1 39 40 41 -1 42 43 44 -1 45 46 47 -1 48 49 50 -1 51 52 53 -1 54 55 56 -1 57 58 59 -1 60 61 62 -1 63 64 65 -1 66 67 68 -1 69 70 71 -1 72 73 74 -1 75 76 77 -1 78 79 80 -1 81 82 83 -1 84 85 86 -1 87 88 89 -1 90 91 92 -1 93 94 95 -1 96 97 98 -1 99 100 101 -1 102 103 104 -1 105 106 107 -1 108 109 110 -1 111 112 113 -1 114 115 116 -1 117 118 119 -1 120 121 122 -1 123 124 125 -1 126 127 128 -1 129 130 131 -1 132 133 134 -1 135 136 137 -1 138 139 140 -1 141 142 143 -1 144 145 146 -1 147 148 149 -1 150 151 152 -1 153 154 155 -1 156 157 158 -1 159 160 161 -1 162 163 164 -1 165 166 167 -1 168 169 170 -1 171 172 173 -1 174 175 176 -1 177 178 179 -1 180 181 182 -1 183 184 185 -1 186 187 188 -1 189 190 191 -1 192 193 194 -1 195 196 197 -1 198 199 200 -1 201 202 203 -1 204 205 206 -1 207 208 209 -1 210 211 212 -1 213 214 215 -1 216 217 218 -1 219 220 221 -1 222 223 224 -1 225 226 227 -1 228 229 230 -1 231 232 233 -1 234 235 236 -1 237 238 239 -1 240 241 242 -1 243 244 245 -1 246 247 248 -1 249 250 251 -1 252 253 254 -1 255 256 257 -1 258 259 260 -1 261 262 263 -1 264 265 266 -1 267 268 269'><Coordinate point='54.142 80 0 60 80 0 64.645 54.645 0 57.071 107.071 0 85 125 0 50 90 0 121.213 88.787 0 74.142 80 0 85 125 0 74.142 80 0 95 45 0 60 80 0 74.142 80 0 60 80 0 50 90 0 74.142 80 0 113.64 63.64 0 95 45 0 113.64 63.64 0 124.853 80 0 126.36 76.36 0 74.142 80 0 50 90 0 85 125 0 74.142 80 0 121.213 88.787 0 124.853 80 0 124.853 80 0 113.64 63.64 0 74.142 80 0 80 130 0 85 125 0 57.071 107.071 0 130 80 0 126.36 76.36 0 124.853 80 0 121.213 88.787 0 130 80 0 124.853 80 0 60 80 0 54.142 80 0 50 90 0 64.645 54.645 0 95 45 0 92.929 42.929 0 60 80 0 95 45 0 64.645 54.645 0 95 45 0 113.64 63.64 0 100 40 0 126.36 76.36 0 130 80 0 135.355 54.645 0 135.355 125.355 0 150 90 0 100 140 0 150 90 30 135.355 125.355 30 100 140 30 85 125 30 120 90 30 100 140 30 92.929 42.929 30 100 40 30 104.645 54.645 30 135.355 54.645 0 150 90 30 135.355 54.645 30 135.355 54.645 0 150 90 0 150 90 30 100 40 0 135.355 54.645 30 100 40 30 100 40 0 135.355 54.645 0 135.355 54.645 30 92.929 42.929 0 100 40 0 92.929 42.929 7.757 57.071 107.071 30 64.645 125.355 30 57.071 107.071 15.515 100 140 0 64.645 125.355 30 100 140 30 100 140 0 64.645 125.355 0 64.645 125.355 30 135.355 125.355 0 100 140 30 135.355 125.355 30 135.355 125.355 0 100 140 0 100 140 30 150 90 0 135.355 125.355 30 150 90 30 150 90 0 135.355 125.355 0 135.355 125.355 30 113.64 63.64 0 135.355 54.645 0 100 40 0 100 140 0 121.213 88.787 0 85 125 0 113.64 63.64 0 126.36 76.36 0 135.355 54.645 0 64.645 125.355 0 57.071 107.071 15.515 64.645 125.355 30 120 90 30 150 90 30 100 140 30 135.355 54.645 30 104.645 54.645 30 100 40 30 113.64 63.64 30 104.645 54.645 30 135.355 54.645 30 80 130 0 64.645 125.355 0 100 140 0 85 125 0 80 130 0 100 140 0 57.071 107.071 0 64.645 125.355 0 80 130 0 100 40 30 92.929 42.929 30 92.929 42.929 24 113.64 63.64 30 135.355 54.645 30 130 80 30 130 80 30 135.355 54.645 30 150 90 30 120 90 30 130 80 30 150 90 30 150 90 0 135.355 54.645 0 130 80 0 150 90 0 130 80 0 121.213 88.787 0 150 90 0 121.213 88.787 0 100 140 0 80 130 30 85 125 30 100 140 30 64.645 125.355 30 80 130 30 100 140 30 80 130 30 64.645 125.355 30 57.071 107.071 30 95 45 0 100 40 0 92.929 42.929 0 100 40 30 92.929 42.929 24 92.929 42.929 7.757 92.929 42.929 7.757 100 40 0 100 40 30 57.071 107.071 0 57.071 107.071 13.757 64.645 125.355 0 64.645 125.355 0 57.071 107.071 13.757 57.071 107.071 15.515 50 90 30 85 125 30 57.071 107.071 30 104.645 54.645 30 74.142 80 30 64.645 54.645 30 74.142 80 30 120 90 30 50 90 30 120 90 30 85 125 30 50 90 30 64.645 54.645 30 92.929 42.929 30 104.645 54.645 30 64.645 54.645 30 74.142 80 30 54.142 80 30 113.64 63.64 30 74.142 80 30 104.645 54.645 30 74.142 80 30 50 90 30 54.142 80 30 74.142 80 30 113.64 63.64 30 130 80 30 130 80 30 120 90 30 74.142 80 30 57.071 107.071 30 85 125 30 80 130 30 30 80 0 80 30 30 30 80 30 30 80 0 80 30 0 80 30 30 57.071 107.071 13.757 30 80 0 30 80 30 80 30 0 92.929 42.929 0 92.929 42.929 7.757 54.142 80 0 30 80 0 50 90 0 50 90 0 30 80 0 57.071 107.071 0 50 90 30 57.071 107.071 30 30 80 30 54.142 80 30 50 90 30 30 80 30 64.645 54.645 0 92.929 42.929 0 80 30 0 30 80 0 54.142 80 0 64.645 54.645 0 30 80 0 64.645 54.645 0 80 30 0 80 30 30 92.929 42.929 30 64.645 54.645 30 64.645 54.645 30 54.142 80 30 30 80 30 80 30 30 64.645 54.645 30 30 80 30 57.071 107.071 0 30 80 0 57.071 107.071 13.757 57.071 107.071 30 57.071 107.071 15.515 30 80 30 30 80 30 57.071 107.071 15.515 57.071 107.071 13.757 80 30 30 92.929 42.929 7.757 92.929 42.929 24 80 30 0 92.929 42.929 7.757 80 30 30 80 30 30 92.929 42.929 24 92.929 42.929 30' /></IndexedFaceSet> |
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3. 使用X3Dom HTML Javascript渲染库,以HTML形式渲染,如图1图2所示。

    图1 原始3D几何图形叠加
    图2 geom1和geom2并集