如何让ST_Overlap返回单个true或false值?

时间:2012-06-15 05:06:54

标签: sql postgresql geospatial postgis

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

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

1 个答案:

答案 0 :(得分:0)

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

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

加入条件比大多数人想象的要多得多。