Как вернуть значение, если точка точно внутри многоугольника в MySQL

Я хочу вернуть значение из таблицы, где точно существуют точки в поле многоугольника
Я написал запрос, но не является точным, возвращаемое значение, даже если точка находится вокруг многоугольника

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

0

Решение

В 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, только если одна функция содержит другую, и потому, что вы проверяете точку, так что это должно дать вам лучший результат

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]