Mysql извлекает полигональные данные


Я разрабатываю сайт, который хранит пространственные данные в базе данных mysql, такие как данные о зданиях, садах и т.д. в виде полигонов (широты и долготы).

Я хочу знать, как получить полигональные данные в mysql.

Я видел этот пример запроса для вставки полигональных данных: http://amper.110mb.com/SPAT/mysql_initgeometry2.htm

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

"where latitude < 9.33 and longitude > 22.4" Также как мне определить, находится ли точка внутри или снаружи многоугольника

Author: shasi kanth, 2011-02-24

1 answers

Вот страница с множеством примеров: http://howto-use-mysql-spatial-ext.blogspot.com/

Это один из примеров извлечения строк, точки которых пересекаются с указанной ограничительной рамкой:

SET @bbox = 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))'; 
SELECT name, AsText(location) FROM Points
    WHERE Intersects( location, GeomFromText(@bbox) );

В документации MySQL говорится, что эти пространственные функции также работают с геометрией (Похоже, точка также является геометрией). Таким образом, вы можете проверить, пересекается ли геометрия в базе данных с той, которую вы указали в инструкции select.

 6
Author: kayahr, 2011-02-24 07:20:17