查找应用程序的附近用户(iPhone和Android)

我正在开发一个有iPhone版本和Android版本的应用程序。

我的目标是…

  • 显示我的应用程序的附近用户列表(iPhone应用程序用户和Android应用程序用户)。 让我们说一个目前在1英里或2英里范围内的用户,目前正在使用我的应用程序。
  • 此列表将显示在这两个应用程序,iPhone应用程序和Android应用程序。
  • 当用户点击刷新button时,应用程序将更新列表。

我的问题是…

  • 完成上述目标的最好方法是什么? 我是否需要定期从他们的Droid和iPhone发送当前所有用户应用程序的GPS位置到我们的networking服务器?

为了让我的问题更清楚

  • 我有一个algorithm来找出给定范围(1英里或2英里半径等)内的地方/用户,所以请不要告诉我如何find给定范围内的用户。
  • 我知道如何获得iPhone和Droid设备的当前位置,所以请不要告诉我如何获取iPhone或Android设备的更新位置。
  • 我知道这是一个隐私问题。 因此,应用程序将要求用户的许可发送他们的位置到我们的networking服务器,所以请不要告诉我关于用户或苹果可能有的隐私问题。
  • 只是告诉我如何最好地维护我的应用程序用户在Web服务器上的地理位置的更新列表? 最好的,经过validation的方法!
  • 让我知道如果我的问题仍然需要澄清。

感谢和最好的问候

Solutions Collecting From Web of "查找应用程序的附近用户(iPhone和Android)"

即使我今天在创build类似的应用程序的时候也有这个问题。 当两个用户/朋友彼此靠近时提醒 – Android Proximity

花了几个小时思考之后,我想一个更好的方法来做到这一点:

1)创buildSharedPreference / DB,它保存了也被更新到服务器的设备的最后坐标。

2)创build服务,将在15分钟内发出一次请求当前位置的服务。

3)如果当前位置与从SharedPreference检索到的最近位置相匹配(或取决于多大的30ft或更多),则用户位于同一位置, 因此不要将坐标上传到服务器。

4)如果用户不在邻近范围内,或者最后的位置与当前位置不匹配,则将坐标上传到服务器。

5)将坐标上传到服务器后,更新SharedPreference。

6)上传后,返回服务器附近同一坐标的用户详细信息。 如果有人在他们身边,用户将会收到通知。

你所做的每一次更新都会花费电池和数据。 如果你这样做太多了,你肯定会因为资源耗尽而惹恼用户。

我build议创build一个定期调用的服务,更新用户在服务器上的位置,并从Web服务器获取附近用户的列表。 更新的频率应取决于用户在上次更新期间旅行的速度。 如果他们没有动,15分钟可能是好的,如果他们以车速行驶,更多的时候是必要的。

为了存储用户在Web服务器上的位置,我build议使用专门构build的GIS软件包,它实际上可以理解位置坐标是什么。 大多数数据库都有这样的内置的东西。然后,当应用程序请求附近的用户列表时,应用程序只需要接收实际附近的用户,其他人可以忽略,保存一些数据,做的工作在手机上的距离计算。

你应该考虑以下可能的问题。

  1. 如果应用程序继续发送用户的位置,则用户电池将会下降,并且Web服务器的内存将会增加。

  2. 应用程序将继续使用互联网发送位置到Web服务器。

  3. 漫游时互联网数据的成本可能会增加。

我的build议是:

  1. 应用程序应该每15分钟发送一次用户的位置。

  2. 每个应用程序应使用唯一的ID来更新他们的位置。

  3. 如果应用程序closures,则清除该应用程序在Web服务器中的位置

你还应该看看scringo 。 这是一个SDK和服务,具有这个确切的function(find附近的用户的应用程序+在地图上显示,等等)