限制一个区域并浏览其他人正在使用相同的应用程序

时间:2013-05-21 17:00:41

标签: android

当我的应用程序被触发时,它会通过GPS获取用户的当前位置(此功能已经实现)。

我的问题是:我想知道,例如我是否有用户在给定半径内使用我的应用程序(例如1公里)。有可能吗?

1 个答案:

答案 0 :(得分:0)

是的,但你也需要一台服务器。从广义上讲,这个过程如下:

  • 该应用从Android获取位置。
  • 应用程序查询服务器,在其请求中发送当前位置。
  • 服务器将位置和用户名存储在空间数据库中;也就是说,可以按位置编制索引的用户数据库。如果有的话,它会覆盖以前的位置。服务器还应该存储位置设置的时间。
  • 服务器还会在空间数据库中查找位置,以查找给定半径中的所有用户或最近的 n 用户。它将用户列表发送回应用程序。它可能使用JSON,XML或其他格式来发送这些数据。 (由于您控制服务器和应用程序,您可以选择您喜欢的任何格式。)
  • 如果设备的位置发生变化,应用程序会再次向服务器报告其位置,并获取新的用户列表。
  • 您还可以使用Google Cloud Messaging或持久连接,让新用户出现在附近,如果您的应用需要,可让服务器通知应用。
  • 当用户离线时,应用程序会向服务器发送另一条消息告诉它。这将删除用户在数据库中的位置,以便该用户在离开该区域后不会显示。
  • 如果应用程序崩溃或突然断开连接,服务器还应该在一定时间内更新数据库中的位置。

对于服务器,您可以在PostGIS之上实现一些功能。 PostGIS是PostgreSQL的一个插件,允许它回答空间查询。

这是一个非常具体的需求,因此我认为您可以下载任何现有代码来为您执行此操作。一旦你试了一下,如果你遇到困难就问一个新的问题。