0
我有一個表格,其中包含一組多邊形(或多邊形,我不確定...是否重要?)的一種類型(A) CTE,然後在另一個CTE中使用另一種類型(B)。我想過濾僅在類型B的多邊形的任何的給定半徑內的類型A多邊形。我該怎麼做?在多個其他多邊形的某個半徑內查找多邊形
我有一個表格,其中包含一組多邊形(或多邊形,我不確定...是否重要?)的一種類型(A) CTE,然後在另一個CTE中使用另一種類型(B)。我想過濾僅在類型B的多邊形的任何的給定半徑內的類型A多邊形。我該怎麼做?在多個其他多邊形的某個半徑內查找多邊形
創建使用ST_Collect &然後使用WHERE子句與ST_DWithin到指定距離參數,你的「B」的多邊形的集合。
例如:
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);
注意的幾何形狀的兩個集合可以是不同的類型(例如多邊形,點,的MultiPolygon等),但它們必須是同投影/座標系統。如果您使用的是標準WGS84(SRID 4326),則距離參數以度爲單位。