Поиск ближайших пользователей приложения (iPhone и Android)

Я работаю над приложением, которое имеет версию для iPhone, а также версию для Android.

Моя цель...

  • отображать список ближайших пользователей моего приложения (пользователи приложения для iPhone и пользователи приложения для Android). Скажем, список пользователей, которые в настоящее время находятся в радиусе 1 или 2 миль и в настоящее время используют мое приложение.
  • Этот список будет отображаться в обоих приложениях, в приложении для iPhone и в приложении для Android.
  • Приложение обновит список, когда пользователь нажмет кнопку «Обновить».

Мой вопрос...

  • Каков наилучший способ достижения вышеуказанной цели? Нужно ли мне периодически отправлять текущее GPS-местоположение всех пользователей приложения с их Droid и iPhone на наш веб-сервер?

Чтобы мой вопрос был более ясным...

  • У меня есть алгоритм для определения мест/пользователей в заданном диапазоне (радиус 1 или 2 мили и т. д.), поэтому ПОЖАЛУЙСТА, НЕ ГОВОРИТЕ МНЕ, как найти пользователей в заданном диапазоне.
  • Я знаю, как получить текущее местоположение устройств iPhone и Droid, поэтому ПОЖАЛУЙСТА, НЕ ГОВОРИТЕ МНЕ, как получить обновленное местоположение устройства iPhone или Android.
  • Я знаю, что это вопрос конфиденциальности. Поэтому приложение будет запрашивать у пользователя разрешение на отправку своего местоположения на наш веб-сервер, поэтому ПОЖАЛУЙСТА, НЕ ГОВОРИТЕ МНЕ о проблемах конфиденциальности, которые могут возникнуть у пользователей или Apple.
  • ПРОСТО СКАЖИТЕ МНЕ, как лучше всего поддерживать обновленный список географических местоположений пользователей моего приложения на веб-сервере? Лучший, проверенный подход!
  • Дайте мне знать, если мой вопрос все еще нуждается в разъяснении.

Спасибо и всего наилучшего


person Atif Azad    schedule 21.10.2011    source источник
comment
Атиф, можете ли вы предложить мне лучший способ. Мне нужно реализовать это сейчас в одном из моих приложений.   -  person Imran    schedule 04.02.2014
comment
Эй, ты понял, как это сделать? Я новичок в разработке мобильных приложений и хочу реализовать ту же функцию   -  person Mohit Shah    schedule 07.04.2016
comment
Не могли бы вы посоветовать алгоритм поиска ближайших пользователей вашего приложения? Я пытался сделать их, но все они тяжелые. Не могли бы вы подсказать, что это было?   -  person Firaun    schedule 05.10.2020


Ответы (4)


Даже у меня сегодня возник этот вопрос при создании подобного приложения. Оповещение, когда два пользователя/друзья находятся рядом друг к другу - Android Proximity

потратив пару часов на размышления, я придумал лучший способ сделать это:

1) Создайте SharedPreference/DB, в котором хранятся последние координаты устройства, которые также были обновлены на сервере.

2) Создайте службу, которая будет запускаться раз в 15 минут, запрашивая текущее местоположение.

3) Если текущее местоположение соответствует последнему местоположению, полученному из SharedPreference и/или поблизости (зависит от того, сколько вы даете 30 футов или более), то пользователь находится в том же месте , поэтому не загружайте координаты на сервер .

4) Если пользователь не находится поблизости или последнее местоположение не соответствует текущему местоположению, загрузите координаты на сервер.

5) После загрузки координат на сервер также обновите SharedPreference..

6) После загрузки вернуть ответ с данными о Пользователях с сервера, которые находятся рядом с теми же координатами. Затем пользователь получит уведомление, если кто-то рядом с ним...

person Rafique Mohammed    schedule 09.10.2014
comment
Как вы реализуете шаг 6. шаги с 1 по 5 довольно прямолинейны. - person sweepez; 11.08.2016

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

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

Чтобы хранить местоположения пользователей на веб-сервере, я бы предложил использовать специально созданный пакет ГИС, который действительно понимает, что такое координаты местоположения. В большинство баз данных встроено что-то подобное. Затем, когда приложение запрашивает список ближайших пользователей, приложению нужно получить только пользователей, которые действительно находятся поблизости, а остальных можно игнорировать, сохраняя некоторые данные и выполняя работу. расчет расстояния по телефону.

person JeffS    schedule 31.10.2011
comment
Очень полезно, JeffS... Мы создаем приложение веб-сервера на C#. Я не знаком с пакетами ГИС. Можете ли вы помочь мне больше в этом? Как мы можем использовать пакеты ГИС с MS SQL Server? Есть ли в MS SQL Server такая встроенная поддержка? - person Atif Azad; 04.11.2011
comment
Я довольно мало знаю о мире MS в том, что касается мира серверов, но я считаю, что SQL Server 2008 поставляется с геопространственными возможностями, и это было бы хорошим началом. - person JeffS; 07.11.2011

вам следует рассмотреть следующие возможные проблемы.

  1. Если приложение будет продолжать отправлять данные о местоположении пользователя, то батарея пользователя будет садиться, а память веб-сервера будет увеличиваться.

  2. Приложение будет продолжать использовать Интернет для отправки местоположения на веб-сервер.

  3. Во время роуминга стоимость интернета может увеличиться.

мои предложения:

  1. Приложение должно отправлять местоположение пользователя каждые 15 минут.

  2. Каждое приложение должно использовать уникальный идентификатор для обновления своего местоположения.

  3. Если приложение закрыто, очистите местоположение этого приложения на веб-сервере.

person ilango j    schedule 21.10.2011
comment
Спасибо за предложения! Но если вы за рулем, ваше местоположение меняется быстро. Обновление каждые 15 минут не поможет пользователям найти других людей рядом с ними. Мне нужны более быстрые обновления, больше данных о местоположении в реальном времени. Как быть эффективным в этом случае. Я знаю, что при быстром обновлении сервера возникнут определенные проблемы, о которых вы тоже упомянули. На самом деле это основная причина, по которой я разместил этот вопрос. - person Atif Azad; 21.10.2011

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

person hungary54    schedule 16.02.2012
comment
Похоже ссылка битая :( - person Jethro; 27.12.2015