GMaps实时对象运动更新方法



我正在制作一款Android游戏。因此,人们可以在他们之间创建群组/聚会,我希望他们能够实时查看在谷歌地图上移动的群组中的每个成员。这意味着我必须找到一种好的方法来实时或至少伪实时更新每个客户端的地图标记。

使用DBMS的方法可以吗?还是成本太高?在这种方法中,每个客户都应该负责每隔一段时间用他们的当前坐标更新数据库,因此每个人都可以进行查询,查看其他成员最后更新的位置。在短时间内实现这一点将给用户一种人们在地图上实时移动的感觉。

另一方面,对等方法会以更好的方式处理这种情况吗?就像每个小组/派对都是独立运行的,让玩家在他们之间每隔一段时间(间隔)交换包含每个人新坐标的信息。我认为第二种方法更好,因为它不会给我们的服务器带来负载,但可能存在缺点。然而,我不确定这将是多么容易实现,以及安卓API是否为这种情况提供了一些好的东西。

欢迎任何意见/建议/评论。请允许我听听你的想法,因为我没有这方面的经验,因此任何事情都可能有所帮助。

提前谢谢!请告诉我:)

由于选项在连接/操作方面都有点"昂贵",我建议您查看MQTT协议。它被用作M2M连接,着眼于优化。它是为物联网而创建的。我已经在非安卓项目中使用过它,但它也可以用于此。你只需要一个服务器(经纪人),我建议Mosquitto(它是轻量级的)。然后每个人都可以订阅一个主题,比如:"/location/update/+"使用+通配符意味着"更新"主题后一级的每个主题。

然后,每个人都将自己的职位发布到主题"/location/update/{MYID}",其他人将获得该职位。通常,只有在连接时才能检索位置,但在订阅并始终使用相同的ClientName连接时,您可以通过使用QoS=2来支持某种"挂起"订阅。

它有帮助吗?

最新更新