21

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

我的目标是...

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

我的问题是...

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

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

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

谢谢和最好的问候

4

4 回答 4

7

即使我今天在创建类似的应用程序时也有这个问题。当两个用户/朋友彼此靠近时发出警报 - Android Proximity

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

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

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

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

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

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

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

于 2014-10-09T14:07:18.073 回答
3

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

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

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

于 2011-10-31T15:55:40.910 回答
2

you should consider following possible issues.

  1. If application keep on sending user's location then the user battery will getting down, and web server memory will increase.

  2. Application will keep on use internet to send location to web server.

  3. At the time of roaming internet data cost may increase.

my suggestions:

  1. The app should send the user's location every 15 minutes.

  2. Every application should use unique id to update their location.

  3. If application closed then clear that app's location in web server.

于 2011-10-21T10:45:06.620 回答
-2

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

于 2012-02-16T10:06:53.200 回答