在许多其他多边形的特定半径内查找多边形

Finding polygons within a certain radius of a number of other polygons

我有一个 table 有一堆多边形(或多边形,我不确定......这有关系吗?)在 CTE 中定义的一种类型 (A),然后是另一种另一个 CTE 中的另一种类型 (B)。我只想过滤 B 型多边形的 any 给定半径内的 A 型多边形。我该怎么做?

使用 ST_Collect 创建 'B' 多边形的集合,然后使用带有 ST_DWithin[ 的 WHERE 子句=19=] 来指定你的距离参数。

例如:

WITH polys_a AS (
  SELECT geom
  FROM buildings_dc
),
polys_b AS (
  SELECT geom
  FROM buildings_va
)
SELECT polys_a.*
FROM polys_a,
(
        SELECT ST_Collect(geom) as geoms
        FROM polys_b
) as c
WHERE ST_DWithin(a.geom, c.geoms, .001);

请注意,两组几何图形可能属于不同类型(例如多边形、点、多多边形等),但它们必须属于相同的投影/坐标系。如果您使用的是标准 WGS84 (SRID 4326),则距离参数以度为单位。