Необходимо выбрать id полигона, которому принадлежит точка.
В Mysql есть функция MBRWithin, которая скорее всего и должна это делать.
Все определяется хорошо, если полигон - прямоугольник, если же полигон имеет сложную фигуру -
точка всегда будет находится внутри описаного прямоугольника.
Нужно проверить именно в многоугольнике.
//База
CREATE TABLE IF NOT EXISTS `cities` (
`id` int(11) NOT NULL,
`name` text NOT NULL,
`g` geometry DEFAULT NULL
);
//Геометрия
SET @g = 'POLYGON((50.4415440837958 30.559938127990726),(50.4411294575134 30.560313846725332),(50.44358926678977 30.56884328067007),(50.44398696208372 30.56849997647087),(50.4415440837958 30.559938127990726))';
UPDATE `cities` SET `g` = PolygonFromText(@g) WHERE `cities`.`id` = 1;
//Проверка точки
SET @poi = "POINT(50.441338 30.565152)',0";
SELECT id FROM `cities` WHERE MBRWithin(GeomFromText(@poi), g ) = 1 LIMIT 1