【问题标题】:Find nearby users of an app (iPhone and Android)查找附近的应用用户(iPhone 和 Android)
【发布时间】:2011-12-12 11:34:42
【问题描述】:

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

我的目标是……

  • 显示我的应用程序附近的用户列表(iPhone 应用程序用户和 Android 应用程序用户)。假设列出当前在 1 英里或 2 英里半径范围内且当前正在使用我的应用的用户。
  • 此列表将同时显示在 iPhone 应用和 Android 应用上。
  • 当用户点击刷新按钮时,应用会更新列表。

我的问题是……

  • 实现上述目标的最佳方法是什么?我是否需要定期将所有应用用户的当前 GPS 位置从他们的 Droid 和 iPhone 发送到我们的网络服务器?

为了让我的问题更清楚......

  • 我有一个算法可以找出给定范围(1 英里或 2 英里半径等)内的地点/用户,所以请不要告诉我如何找到给定范围内的用户。
  • 我知道如何获取 iPhone 和 Droid 设备的当前位置,所以请不要告诉我如何获取 iPhone 或 Android 设备的最新位置。
  • 我知道这是一个隐私问题。因此,应用会请求用户允许将他们的位置发送到我们的网络服务器,因此请不要告诉我用户或 Apple 可能存在的隐私问题。
  • 告诉我如何在网络服务器上最好地维护我的应用用户的地理位置更新列表?经验证的最佳方法!
  • 如果我的问题还需要澄清,请告诉我。

感谢和问候

【问题讨论】:

  • Atif,你能建议我最好的方法吗?我现在需要在我的一个应用程序中实现它。
  • 嘿,你知道怎么做吗?我是移动应用开发的初学者,想实现相同的功能
  • 您能否就找到应用程序最接近用户的算法提供建议?我一直在尝试制作,但所有这些都是繁重的过程。你能建议它是什么吗?

标签: android iphone geolocation gps gps-time


【解决方案1】:

即使我今天在创建类似的应用程序时也有这个问题。 Alert when two users/friends are near to each other - Android Proximity

经过几个小时的思考,我想到了一个更好的方法:

1) 创建 SharedPreference / DB,其中包含设备的最后一个坐标,该坐标也已更新到服务器。

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

3) 如果当前位置与从 SharedPreference 检索到的最后一个位置相匹配,或者在附近(取决于你给 30 英尺或更多),那么用户在同一个地方 所以不要上传坐标到服务器。

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

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

6) 上传后,从服务器返回相同坐标附近的用户详细信息的响应。如果周围有人,用户将收到通知..

【讨论】:

  • 如何实现step6。第 1 步到第 5 步非常简单。
【解决方案2】:

您进行的每次更新都会消耗电池和数据流量。如果你这样做太多,你肯定会因为资源浪费而惹恼用户。

我建议创建一个定期调用的服务,以更新用户在服务器上的位置,并从 Web 服务器获取附近用户的列表。更新频率应取决于用户在上次更新期间的行驶速度。如果他们不动,15 分钟可能就可以了,如果他们以汽车速度行驶,则需要更频繁。

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

【讨论】:

  • 非常有帮助 JeffS... 我们正在用 C# 构建我们的 Web 服务器应用程序。我不熟悉 GIS 包。你能帮我更多吗?我们如何将 GIS 包与 MS SQL Server 一起使用? MS SQL Server 是否内置了这样的支持?
  • 就服务器端领域而言,我对 MS 领域知之甚少,但我相信 SQL Server 2008 具有地理空间功能,这将是一个很好的起点。
【解决方案3】:

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

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

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

  3. 漫游时互联网数据费用可能会增加。

我的建议:

  1. 应用应每 15 分钟发送一次用户的位置信息。

  2. 每个应用程序都应使用唯一 ID 来更新其位置。

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

【讨论】:

  • 感谢您的建议!但如果你在开车,你的位置变化很快。每 15 分钟更新一次不会帮助用户找到他们附近的其他人。我想要更快的更新,更多的实时位置数据。在这种情况下如何高效。我知道快速更新服务器会遇到某些问题,正如您自己也提到的那样。其实这是我发布这个问题的主要原因。
【解决方案4】:

您还应该看看 scringo 。它是具有此确切功能的 SDK 和服务(查找您的应用附近的用户 + 在地图上显示等...)

【讨论】:

  • 好像链接坏了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多