Mysql: ST_Contains 带边框检测多面体是否包含点
Mysql: ST_Contains with borders to detect if multipolygon contains point
我使用 mysql 空间函数。
我必须了解点是否位于多边形中。
最初我使用 MBRContains
但它以一种奇怪的方式工作,所以我遇到了以下错误:
我的下一步是切换到函数 ST_Contains
。但我发现如果我使用多边形(来自多边形)顶点作为参数 - 函数 returns false 但我想取消所有多边形边界。
P.S.
我发现函数在哪里:
ST_Touches(g1, g2)
Two geometries spatially touch if their interiors do not intersect,
but the boundary of one of the geometries intersects either the
boundary or the interior of the other
看起来像我想要的那样工作(在 OR
条件下 ST_contains
),但文档对我来说不清楚。你能解释一下 2 个条件如何同时为真吗
1. 内饰不相交
2. 边界与内部相交。
?
问题:
我怎样才能实现我想要的行为?
看起来 ST_Distance(AREA, @point)) = 0
包括边框
看起来可行的解决方案:
ST_Contains(g1,g2) || ST_Touches(g1, g2)
我使用 mysql 空间函数。
我必须了解点是否位于多边形中。
最初我使用 MBRContains
但它以一种奇怪的方式工作,所以我遇到了以下错误:
我的下一步是切换到函数 ST_Contains
。但我发现如果我使用多边形(来自多边形)顶点作为参数 - 函数 returns false 但我想取消所有多边形边界。
P.S.
我发现函数在哪里:
ST_Touches(g1, g2)
Two geometries spatially touch if their interiors do not intersect, but the boundary of one of the geometries intersects either the boundary or the interior of the other
看起来像我想要的那样工作(在 OR
条件下 ST_contains
),但文档对我来说不清楚。你能解释一下 2 个条件如何同时为真吗
1. 内饰不相交
2. 边界与内部相交。
?
问题:
我怎样才能实现我想要的行为?
看起来 ST_Distance(AREA, @point)) = 0
包括边框
看起来可行的解决方案:
ST_Contains(g1,g2) || ST_Touches(g1, g2)