本 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 表中几何图形缓冲区范围内或包含区域的数据,然后合并这些几何图形并计算总面积。

SQL 查询语句:计算几何图形缓冲区内或包含区域的总面积

原文地址: https://www.cveoy.top/t/topic/mSvE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录