Мне нужно сделать точку в многоугольнике запросом MySQL.
Я уже нашел эти два отличных решения:
http://forums.mysql.com/read.php?23,286574,286574
Реализация MySQL алгоритма ray-casting?
Но эти функции могут только проверить, находится ли одна точка внутри полигона. У меня есть запрос, в котором часть 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
ОБНОВЛЕНИЕ
Я попробовал это с такими функциями 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 говорит, что это так.
MBRContains()
а>? - person eggyal   schedule 16.01.2013