You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可允许多边形共享边的ST_Intersects替代空间函数

解决方案

你需要的是仅当两个多边形存在内部交集(而非仅共享边界)时返回true,可以通过ST_Intersects结合ST_Touches来实现:

SELECT entity_number
FROM coordinates
WHERE ST_INTERSECTS($1, location)
  AND NOT ST_TOUCHES($1, location)

函数说明

  • ST_Intersects($1, location):会返回所有存在交集的情况,包括多边形互相穿过、一个包含另一个、仅共享边这三类场景。
  • ST_Touches($1, location):仅当两个几何体仅在边界接触、无内部重叠时返回true(也就是你想排除的共享边场景)。

通过AND NOT ST_TOUCHES,就能精准过滤掉仅共享边的情况,只保留真正有内部相交的结果。

其他函数的适配性说明

  • ST_Covers/ST_Contains:仅能判断一个几何体完全覆盖/包含另一个,无法检测部分重叠的场景,不符合需求。
  • ST_ContainsProperly:要求一个几何体完全在另一个内部且边界无接触,同样无法覆盖部分重叠的情况。
  • ST_DWithin:是基于距离的判断,和多边形相交逻辑无关,不适用。

内容的提问来源于stack exchange,提问作者ABDULLOKH MUKHAMMADJONOV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:53:16