来自服务器的谷歌地图实时位置更新

Posted

技术标签:

【中文标题】来自服务器的谷歌地图实时位置更新【英文标题】:Google map real time location update from server 【发布时间】:2016-06-28 05:34:59 【问题描述】:

我正在开发一个需要实时共享位置的 android 应用程序。我有 mysql 作为服务器来存储用户位置。我需要从服务器获取位置并在谷歌地图上更新。我可以通过简单地调用 Web 服务来通过计时器任务存储和检索位置来做到这一点。但这会导致电池快速耗尽,而且这也不是实时发生的。我想实时完成所有这些,如果用户正在移动,我想在地图上移动标记。请帮助我,我将非常感激。

【问题讨论】:

使用GCM在位置改变时从服务器发送通知,并在android端更新用户在地图上的位置..无需使用计时器任务。 【参考方案1】:

我认为您需要使用 websockets。您还可以使用 GCM 将位置推送到应用程序。如果您详细说明您在服务器端使用的技术,我们将能够提供更多信息。希望这会有所帮助。

【讨论】:

【参考方案2】:

websockets 和 GCM 可能都不起作用。 每当您需要从服务器推送实时流式更新时,您需要与服务器建立 TCP 通道连接,这就是旅行服务 uber 或 ola 的工作方式。

检查如何设置 TCP 服务器套接字

【讨论】:

【参考方案3】:

如果您想在不使用 GPS 的情况下获得更准确的位置数据。相反,该服务会通过查看您周围的手机信号塔和 WiFi 接入点来尝试对您的位置进行三角测量。然后使用Google Maps Geolocation API. 此服务旨在节省电池寿命并在 GPS 无法工作的情况下提供更好的室内定位。

您也可以查看此SO question 以获得其他解决方案。

【讨论】:

以上是关于来自服务器的谷歌地图实时位置更新的主要内容,如果未能解决你的问题,请参考以下文章

颤动的谷歌地图无法显示来自firebase的标记

如何在android的谷歌地图V2上添加谷歌素材图标“我的位置”?

鼠标悬停时的谷歌地图 v3 标记信息窗口

带有 html 5 观察位置的谷歌地图(防止地图刷新)

如何从angularJS中的谷歌地图标记获取动态位置

如何处理隐藏 div 内的谷歌地图(更新图片)