2014-10-07 9 views
0

У меня есть приложение Rails и куча точек и полигонов в моделиНайти соседние многоугольники в Рубине

Я использую MySQL> 5.6 и камень Geokit для создания объектов полигона, и мне интересно, если это возможно найти соседние полигоны - то есть полигоны, которые касаются полигона, в котором я нахожусь.

Любая помощь приветствуется - Спасибо!

- ОБНОВЛЕНИЕ

Думая решения я пришел с этим 1. Найти все многоугольники объекты 2. какие из них пересекаются с тем, у меня есть - если они пересекаются, они будут соседними

Теперь я нахожу, как найти, пересекаются ли они. Я считаю, что вы можете сделать это с помощью пространственных функций mysql. Я отправлю отчет с обновлением.

ответ

0

Найден ответ на мой вопрос. Хотя это не геокит, он работает хорошо.

Я сделал это с помощью пространственных функций MySQL, в частности st_disjoint

Учитывая таблицу с полигонами я могу найти все полигоны, которые стык с помощью следующего запроса

select * from polygon where st_disjoint((select polygon from polygons where id=1), neighbourhoods.polygon) =0

Я надеялся получите st_touches, чтобы работать для этого, но он не работал, как я ожидал. Независимо от st_disjoint делает работу

Вот ссылка на функции.

http://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html

Смежные вопросы