0

Я создаю приложение, основанное на местоположении.Приложение для определения местоположения на Android, которое должно работать с вычислением радиуса

Допустим, у меня есть пользователь A и у меня есть значения широты и долготы его текущего местоположения.

У меня есть пользовательские места B, C, D и thier. Для примера - пользователь B + D находится в радиусе 5 км от пользователя A, а пользователь C находится в радиусе 12 км от пользователя A, и я хочу знать, как я могу сделать функцию, которая скажет мне, чьи близкие мне 4/5/6/7км и т. д. Если пользователь A хочет, чтобы пользователи находились в 8,5 км от него, у меня будет в результате пользователь B + D и расстояние от пользователя A.

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

Во-первых, я подумал, используя http-запрос или некоторые математические функции для вычисления расстояния между моими пользователями на стороне сервера, но клиент (Android) предлагает очень хорошие инструменты для этого, поэтому из-за этого я потерял знание, это лучшее, что нужно сделать.

Благодаря поднимитесь :)

ответ

0

Эй вы не думаете, что всегда отправка местоположения п-1 пользователей к одному запросу от сервера неэффективно и потребляет ненужную полосу пропускания, чем отправка только несколько в радиусе окрестностях? Сервер может легко выполнить это вычисление. Подумайте о сценарии, в котором растет и растет ваша пользовательская база приложений? И что? Такое вычисление всегда выполняется на сервере.

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

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

+0

Во-первых, Msk благодарит за ответ. Я тоже так думал, но теперь вопрос в том, что я запускаю серверную часть Django с базой данных postgresql. Знаете ли вы какие-нибудь подходящие библиотеки для этого? –

+0

Почему библиотека? Проверьте эту функцию http://stackoverflow.com/questions/4913349/haversine-formula-in-python-bearing-and-distance-between-two-gps-points – Msk