Я хочу вернуть значение из таблицы, где точно существуют точки в поле многоугольника
Я написал запрос, но не является точным, возвращаемое значение, даже если точка находится вокруг многоугольника
"select `name`,`loc_id` FROM `locations` where MBRContains(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 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, только если одна функция содержит другую, и потому, что вы проверяете точку, так что это должно дать вам лучший результат
Других решений пока нет …