Mysql:ST_包含带有边框以检测多面体是否包含点

时间:2018-11-24 09:34:38

标签: mysql spatial spatial-query point-in-polygon mysql-spatial

我使用mysql空间函数。

我必须了解点是否位于多面中。
最初,我使用MBRContains,但是它以一种奇怪的方式工作,所以我遇到了以下错误:Mysql function MBRContains is not accurate

enter image description here

我的下一步是切换到功能ST_Contains。但是我发现,如果我使用来自polypolygon的polygon(来自multipolygon)顶点作为参数-函数返回false,但我想取消所有multipolygon边界。

P.S。

我发现函数在哪里

  

ST_Touches(g1,g2)

     

如果两个几何的内部不相交,它们在空间上会相互接触,   但其中一个几何的边界与   边界或另一个的内部

看起来像我想要的那样工作(在OR的{​​{1}}条件下),但是文档对我来说并不明确。你能解释两个条件如何一起成为真理吗?
1.内部不相交
2.边界与边界相交。

问题:

如何实现我想要的行为?

2 个答案:

答案 0 :(得分:1)

看起来像可行的解决方案:

ST_Contains(g1,g2) || ST_Touches(g1, g2)

答案 1 :(得分:0)

看起来ST_Distance(AREA, @point)) = 0带有边框