0

我想知道polygon1.the_geom和之间是否有任何重叠polygon2.the_geom。但是,我不想知道每个实例是否有重叠。相反,如果 中的任何地方只有一个重叠ST_Overlap,我希望返回一个值,即“真”。如果没有发生重叠,那么我只希望返回一个“false”值。我知道,使用ST_Union组合结果对布尔值不起作用。但是,我需要将查询结果缩小到一行。

SELECT ST_Overlaps(polygon1.the_geom, polygon2.the_geom) from polygon1, polygon2
4

1 回答 1

0

我对 PostGIS 不太熟悉,但您应该可以加入ST_Overlaps(...)并查看是否有任何收获:

select exists(
    select 1
    from polygon1
    join polygon2 on ST_Overlaps(polygon1.the_geom, polygon2.the_geom)
)

JOIN 条件比大多数人想象的更通用。

于 2012-06-15T05:25:40.227 回答