Mysql извлекает полигональные данные
Я разрабатываю сайт, который хранит пространственные данные в базе данных mysql, такие как данные о зданиях, садах и т.д. в виде полигонов (широты и долготы).
Я хочу знать, как получить полигональные данные в mysql.
Я видел этот пример запроса для вставки полигональных данных: http://amper.110mb.com/SPAT/mysql_initgeometry2.htm
Но теперь я хочу знать, как извлечь данные из таблицы, основываясь на определенных ограничениях например:
"where latitude < 9.33 and longitude > 22.4"
Также как мне определить, находится ли точка внутри или снаружи многоугольника
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.