如果 mysql 中的点恰好位于多边形内部,如何 return 取值

How to return value if point exactly inside polygon in mysql

我想 return 来自 table 的值,其中点恰好存在于多边形字段中
我写了查询但不准确,值 returned 甚至点在多边形周围

"select `name`,`loc_id` FROM `locations` where MBRContains(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1"

在 mysql 中,您应该使用 ST_CONTAINS

而不是 MBR(最小边界矩形)
"select `name`,`loc_id` 
    FROM `locations` 
    where ST_CONTAINS(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1"

ST_CONTAINS returns 仅当一个特征包含另一个特征时为真,并且由于您正在检查点,因此这应该会给您带来更好的结果