Buscar usuarios cercanos de una aplicación (iPhone y Android)

Estoy trabajando en una aplicación que tiene una versión de iPhone, así como una versión de Android.

Mi meta es…

  • Mostrar una lista de usuarios cercanos de mi aplicación (usuarios de aplicaciones de iPhone y usuarios de aplicaciones de Android). Digamos una lista de usuarios que actualmente están dentro de 1 milla o 2 millas de radio y actualmente están utilizando mi aplicación.
  • Esta lista se mostrará en las aplicaciones, la aplicación de iPhone y la aplicación de Android.
  • La aplicación actualizará la lista cuando el usuario haga clic en un botón Actualizar.

Mi pregunta es…

  • ¿Cuál es la mejor manera de lograr la meta indicada arriba? ¿Necesito enviar periódicamente la ubicación actual de GPS de todos los usuarios de la aplicación de sus Droids y iPhones a nuestro servidor web?

Para hacer mi pregunta más clara …

  • Tengo un algoritmo para encontrar los lugares / los usuarios dentro de un rango dado (1 milla o 2 millas de radio etc), así que POR FAVOR NO ME DIGA cómo encontrar a usuarios dentro de un rango dado.
  • Sé cómo obtener la ubicación actual de dispositivos iPhone y Droid, así que POR FAVOR NO ME DIGA cómo obtener la ubicación actualizada de un iPhone o dispositivo Android.
  • Sé que se trata de un problema de privacidad. Por lo tanto, la aplicación solicitará el permiso del usuario para enviar su ubicación a nuestro servidor web, así que POR FAVOR NO ME DIGA sobre privacidad preocupa a los usuarios o Apple puede tener.
  • SOLO DÍME cómo mantener mejor la lista actualizada de Geo Locations de los usuarios de mi aplicación en el servidor web? El mejor y probado enfoque!
  • Déjeme saber si mi pregunta todavía necesita aclaración.

Gracias y un saludo

Incluso tuve esta pregunta en mi mente hoy al crear aplicaciones similares. Alerta cuando dos usuarios / amigos están cerca el uno del otro – Proximidad de Android

Después de pasar un par de horas pensando, pensé que una mejor manera de hacer esto:

1) Create SharedPreference / DB que contiene las últimas Coordenadas del dispositivo que también fue actualizado al servidor.

2) Crear Servicio que disparará una vez en 15 minutos solicitando la ubicación actual.

3) Si la ubicación actual coincide con la última ubicación recuperada de SharedPreference y / o cerca de la proximidad (depende de cuánto u da 30 ft o más), entonces el usuario está en el mismo lugar, así que no cargue las coordenadas en el servidor.

4) Si el usuario no está en proximidad o la última ubicación no coincide con la ubicación actual y, a continuación, cargue las coordenadas en el servidor.

5) Después de cargar coordenadas en el servidor, actualice SharedPreference también.

6) Después de cargar, devuelve la respuesta de los detalles de los usuarios del servidor que están cerca de las mismas coordenadas. El usuario será notificado si alguien a su alrededor ..

Cada actualización que hagas costará la batería y los datos. Si haces esto demasiado, sin duda molestar a los usuarios por ser un recurso cerdo.

Sugiero crear un servicio que se llama periódicamente, para actualizar la ubicación del usuario en el servidor y obtener una lista de usuarios cercanos del servidor web. La frecuencia de las actualizaciones debe depender de la velocidad con la que el usuario viajaba durante su última actualización. Si no se estaban moviendo, 15 minutos es probablemente bien, si iban a velocidades de coche, más a menudo es necesario.

Para almacenar las ubicaciones de los usuarios en el servidor web, sugeriría usar un paquete GIS diseñado específicamente que comprenda realmente qué es una coordenada de ubicación. La mayoría de las bases de datos tienen algo como esto construido. Entonces, cuando la aplicación solicita una lista de usuarios cercanos, la aplicación sólo necesita recibir a los usuarios que están realmente cerca, y los demás pueden ser ignorados, guardar algunos datos y el trabajo de hacer Cálculos de distancia en el teléfono.

Usted debe considerar seguir posibles problemas.

  1. Si la aplicación sigue enviando la ubicación del usuario, la batería del usuario se reducirá y la memoria del servidor web aumentará.

  2. La aplicación seguirá utilizando Internet para enviar la ubicación al servidor web.

  3. En el momento de la itinerancia el costo de los datos de Internet puede aumentar.

mis sugerencias:

  1. La aplicación debe enviar la ubicación del usuario cada 15 minutos.

  2. Cada aplicación debe utilizar identificador único para actualizar su ubicación.

  3. Si la aplicación se cerró, borre la ubicación de la aplicación en el servidor web.

También debe echar un vistazo a scringo . Se trata de un SDK y servicio que tiene esta función exacta (encontrar a los usuarios cercanos de su aplicación + mostrarlo en el mapa, etc …)

  • Galería de imágenes completa de la página web y del zoom inhabilitado para todos los navegadores móviles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.