Mysql: найти полигон в пределах определенного радиуса

0

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

Каков наилучший способ сделать это? Я думал о создании другого полигона и поиске всего, что пересекает это, но не знаю, является ли это допустимым методом?

Теги:
spatial
mysql-spatial

1 ответ

0

Да, я думаю, что это лучший подход. Вы можете создать многоугольник, используя ST_BUFFER, а затем вы можете использовать ST_INTERSECT, чтобы найти, будут ли полигоны пересекаться с вашим полигоном.

Возможно, вы также можете сделать это с помощью ST_DISTANCE. Он рассчитает минимальное расстояние точки от многоугольника.

Select ST_DISTANCE(polygons,POINT(x, y)) as distance, polygon_id from your_polygon_table WHERE distance <= 10 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню