Лучший способ подключения пользователей в закрытой близости(широта Долгота) - PullRequest
1 голос
/ 19 января 2011

Я создаю приложение для Android, которое соединяет бегунов в непосредственной близости. Я использовал Tornado ServerWeb (Python) и базу данных No-SQL.

Мое решение:

Сохранение всех {lon, lat} (регулярно обновляемых) пользователей в DataLocation.

Когда пользователь хочет видеть пользователей вокруг себя, он вызывает на моем сервере специальную функцию, которая создает ограничивающий прямоугольник из его текущей позиции. Следующий шаг - вернуть пользователей моего DataLocation, которые находятся в его ограничительной рамке.

Это хороший способ? Любые советы? GeoJSON полезен для меня? Как я могу сделать это в Python?

1 Ответ

0 голосов
/ 20 января 2011

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

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

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