Mysql выбирает, где многоугольник содержит точку, всегда ложную

Я пробовал различные функции, такие как MBRWithin, MBRContains, Intersects, Contains (все они найдены во множестве сообщений здесь), но пока безуспешно. Это упрощенный запрос:

SELECT * FROM  users
WHERE Intersects( GeomFromText( 'POINT(50 50)' ), GeomFromText( 'POLYGON(0 0, 100 0, 100 100, 0 100, 0 0)' ) );

Я ожидал, что он оценит это условие как истинное (например, 1=1) и вернет всех пользователей, однако этого не произошло. Подскажите пожалуйста, что я делаю не так?

Я использую MySql 5.5.


person Community    schedule 20.05.2013    source источник


Ответы (1)


Это сработало для меня:

SELECT
    *
FROM 
    users
WHERE
    MBRContains(
        GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'),
        GeomFromText('Point(50 50)')) = 1;
person user4035    schedule 20.05.2013