Мне нужно сделать точку в запросе MySQL многоугольника.
Я уже нашел эти два больших решения:
http://forums.mysql.com/read.php?23,286574,286574
MySQL-реализация алгоритма лучевого кастинга?
Но эти функции могут только проверять, находится ли одна точка внутри поля. У меня есть запрос, где часть PiP должна быть только частью запроса и проверять x точек внутри многоугольника.
Что-то вроде этого:
$points = list/array/whatever of points in language of favour
SELECT d.name
FROM data AS d
WHERE d.name LIKE %red%
// just bla bla
// how to do this ?
AND $points INSIDE d.polygon
AND myWithin( $points, d.polygo ) // or
UPDATE
Я попробовал его с MBR функциями вроде этого:
SET @g1 = GeomFromText('Polygon((13.43971 52.55757,13.41293 52.49825,13.53378 52.49574, 13.43971 52.55757))');
SET @g2 = GeomFromText('Point(13.497834 52.540489)');
SELECT MBRContains(@g1,@g2);
G2 НЕ должен находиться внутри G1, но MBR говорит, что это.