Хранение данных о долготе и широте в базе данных и запрос ближайших записей - PullRequest
1 голос
/ 28 июля 2010

Я создаю приложение rails, которое будет использовать геолокацию.Можно добавить долготу и широту к записи.Если есть несколько записей с геолокации, можно увидеть карту Google с близлежащими записями, как и в случае с геолокацией Twitter.

Как я могу сохранить координаты (я не против делать расчеты) и найти записи поблизости?Моя база данных MySQL.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 28 июля 2010

Существует два подхода, которые вы можете использовать в зависимости от ваших требований:

  • Сохраняйте координаты самостоятельно (как вы и планировали).Вы должны проверить гем Geokit , который поддерживает бэкэнд MySQL и предоставляет помощников для поиска близлежащих местоположений.
  • Храните ваши координаты с помощью Simplegeo , для которого вы можетеиспользуйте это драгоценный камень .Опять же, это заботится о вашем хранении и поиске поблизости.
1 голос
/ 29 июля 2010

Вы можете использовать act_as_solr_reloaded для индексации и запроса ваших пространственных данных, для этого вам не нужно хранить информацию о широте и долготе в основной таблице, а вместо этого создается миграция, которая создает таблицу локальных данных, в которой хранятся данные о широте и долготе. Вы можете запросить индексы solr, используя это также с широтой, долготой и радиусом.

1 голос
/ 28 июля 2010

Geokit подходит для данных после их извлечения из базы данных, но не для того, чтобы структурировать запрос из базы данных, используя пространственные данные.Если бы вы использовали только mysql, вы бы застряли на множестве вычислений.Поскольку вы используете рельсы, у вас есть по крайней мере этот параметр: http://freelancing -god.github.com / ts / en / geosearching.html , который должен позаботиться о значительной части расчетов за вас.

0 голосов
/ 28 июля 2010

Посмотрите на Geokit .Он широко используется в картографических приложениях.

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