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