【问题标题】:How can I get ST_Overlap to return single true or false value?如何让 ST_Overlap 返回单个真值或假值?
【发布时间】:2012-06-15 05:06:53
【问题描述】:

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

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

【问题讨论】:

    标签: sql postgresql geospatial postgis


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-14
      • 2013-05-29
      • 2018-08-14
      • 2014-09-07
      • 2012-11-16
      • 1970-01-01
      • 2019-08-20
      • 2020-10-27
      • 1970-01-01
      相关资源
      最近更新 更多