我正在开发一款拥有iPhone版和Android版的应用。
我的目标是......
我的问题是......
让我的问题更清楚......
谢谢和最好的问候
答案 0 :(得分:7)
即使我今天在创建类似的应用程序时也有这个问题。 Alert when two users/friends are near to each other - Android Proximity
经过几个小时的思考后,我想到了一个更好的方法:1)创建SharedPreference / DB,其中包含已更新到服务器的设备的最后一个坐标。
2)创建服务,该服务将在15分钟内触发一次,请求当前位置。
3)如果当前位置与从SharedPreference检索到的最后位置匹配,或者在邻近范围内(取决于您提供30英尺或更多的数量),则用户位于同一位置所以不要上传服务器的坐标。
4)如果用户不在附近或最后位置与当前位置不匹配,则将坐标上传到服务器。
5)将坐标上传到服务器后,也要更新SharedPreference ..
6)上传后,从相同坐标附近的服务器返回用户详细信息的响应。如果周围有人,用户将收到通知..
答案 1 :(得分:3)
您所做的每次更新都会耗费电量和数据。如果你做得太多,你肯定会因为资源匮乏而烦扰用户。
我建议创建一个定期调用的服务,更新用户在服务器上的位置,并从Web服务器获取附近用户的列表。更新频率应取决于用户在上次更新期间的旅行速度。如果他们没有移动,15分钟可能没问题,如果他们以车速行驶,往往是必要的。
为了在Web服务器上存储用户位置,我建议使用专门构建的GIS包,它实际上了解位置坐标是什么。大多数数据库都内置了这样的内容。然后,当应用程序请求附近用户的列表时,应用程序只需要接收实际位于附近的用户,其他用户可以被忽略,保存一些数据,以及做的工作电话上的距离计算。
答案 2 :(得分:2)
您应该考虑以下可能的问题。
如果应用程序继续发送用户的位置,那么用户电池将会关闭,并且Web服务器内存将会增加。
应用程序将继续使用互联网将位置发送到网络服务器。
在漫游时,互联网数据的成本可能会增加。
我的建议:
应用程序应每15分钟发送一次用户的位置。
每个应用程序都应使用唯一ID来更新其位置。
如果申请已关闭,请清除该应用在网络服务器中的位置。
答案 3 :(得分:-2)
您还应该看看scringo。这是一个SDK&具有此确切功能的服务(查找应用的附近用户+在地图上显示等等)