Как найти GPS-координаты внутри ограничительного круга - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть серия GPS-координат в десятичном формате с точками, умноженная на 1.000.000.Например, широта 51.1 и долгота 4.1 будут сохранены как Y 51100000 и X 4100000.Эти координаты сохраняются в базе данных SQlite 3.

Используя Ruby 1.9.2 и Rails 3.0.8, мне нужно иметь возможность получать все записи, которые находятся в пределах определенного радиуса определенной центральной точки.Например, учитывая центральную точку широты 51 и долготы 4, мне нужно найти все записи в радиусе 10 километра.

В этой статье довольно хорошо объясняется, как выполнить запрос, чтобы получитьэти записи, но SQlite, похоже, не поддерживает используемые математические функции: http://www.movable -type.co.uk / scripts / latlong-db.html

Есть ли какие-либо другиеКак я мог бы получить правильные записи из базы данных, которая не включает в себя итерацию по всей таблице?

Спасибо!

1 Ответ

1 голос
/ 10 ноября 2011

Если вы НЕ ДОЛЖНЫ использовать SQLite, попробуйте его с помощью Sphinx:

Я бы преобразовал координаты GPS в координаты широты / долготы, а затем использовал бы Sphinx (для рельсов есть geminking-sphinx: http://freelancing -god.github.com / ц / о / ).С помощью Sphinx вы можете искать точки в данном круге с помощью функции Sphinx: @ geodist

Яркий пример того, как это сделать, вы увидите здесь: http://joeyschoblaska.com/blog_posts/220-thinking-sphinx-searching-by-location-and-keyword

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...