如果 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 仅当一个特征包含另一个特征时为真,并且由于您正在检查点,因此这应该会给您带来更好的结果
我想 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 仅当一个特征包含另一个特征时为真,并且由于您正在检查点,因此这应该会给您带来更好的结果