SQL 查询语句:计算几何图形缓冲区内或包含区域的总面积
本 SQL 查询语句用于计算 gz_jzyd 表中几何图形与 ylss 表中几何图形缓冲区范围内或包含区域的总面积。
SELECT st_area(st_union(a.geom)) area
FROM gz_jzyd a
JOIN ylss b ON ST_Intersects(ST_Buffer(b.geom, 2000), a.geom) OR ST_Contains(ST_Buffer(b.geom, 2000), a.geom);
解释:
SELECT st_area(st_union(a.geom)) area: 选择并计算合并后的几何图形的面积,并将结果命名为area。FROM gz_jzyd a: 从gz_jzyd表中选择数据,并将其别名为a。JOIN ylss b ON ...: 连接gz_jzyd表和ylss表,并设置连接条件。ST_Intersects(ST_Buffer(b.geom, 2000), a.geom): 判断ylss表中几何图形b.geom缓冲区 (半径为 2000) 是否与gz_jzyd表中几何图形a.geom相交。ST_Contains(ST_Buffer(b.geom, 2000), a.geom): 判断ylss表中几何图形b.geom缓冲区 (半径为 2000) 是否包含gz_jzyd表中几何图形a.geom。ST_Union(a.geom): 将所有满足条件的gz_jzyd表中几何图形a.geom合并成一个几何图形。
简而言之: 该查询语句通过连接两张表,筛选出 gz_jzyd 表中几何图形与 ylss 表中几何图形缓冲区范围内或包含区域的数据,然后合并这些几何图形并计算总面积。
原文地址: https://www.cveoy.top/t/topic/mSvE 著作权归作者所有。请勿转载和采集!