我目前正在开发一款应用,要求我在同一张地图上对多个设备进行地理定位。用户单击图像视图,弹出一个新的活动,并显示一个包含所有应用用户位置的地图。然而,在浏览网页后,我找不到任何有用的东西。
我想知道什么是更好的解决方案:
1)每次用户启动" MapsActivity"它会触发每个用户的通知,以便它可以请求其位置 2)每30秒,每个用户的位置在数据库中更新,并且每次用户启动" MapsActivity"它向数据库发送查询=>这个解决方案可能会耗尽电池......
感谢您的帮助
答案 0 :(得分:0)
确保当用户启动 MapsActivity 时,您希望显示所有用户的位置。如果您希望显示所有用户的位置,那么根本就不会进行地理定位,这将是简单的地理位置。现在
适用于所有用户的位置
找出所需用户的位置精确度。如果您需要高度精确的位置,那么您将不得不使用您在上面描述的方法,该方法会显着耗尽电池。
1) Each time a user starts the "MapsActivity" it triggers notifications to each user so it can request its position 2) Every 30 seconds each user's position is updated in a database and each time a user starts the "MapsActivity" it sends a query to the database => This solution might drain the battery
如果不需要高精度数据,则用户可以定期向服务器发送其位置的地理位置,服务器可以以> 形式存储数据。当用户启动MapsActivity时,将在本地计算geohash,并将向服务器发送查询,该服务器将返回大致位置作为回报。你在这里唯一的优势是周期可以更长,即用户可以每隔5分钟ping服务器而不是30秒,从而节省了赌注。
适用于所有用户的位置
使用类似的geohash技术,并使用用户位置的地理位置ping服务器。然后在检索时,使用levenshtein距离计算近似geohash并返回属于所有这些近似地理相位的用户。
继承了一些您可能会觉得有用的资源