如果在mysql中正好位于多边形内,如何返回值

时间:2017-02-24 12:48:40

标签: php mysql polygon point mysql-5.7

我想从多边形字段中确切存在点的表中返回值 我写了查询但不准确,返回的值甚至是多边形点

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

1 个答案:

答案 0 :(得分:1)

在mysql而不是MBR(最小边界矩形)中,您应该使用ST_CONTAINS

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

ST_CONTAINS仅在一个要素包含另一个要素时返回true,并且由于您正在检查点,因此这应该会给您带来更好的结果