如何在 Android 应用程序的地图中显示用户的实时位置?

Posted

技术标签:

【中文标题】如何在 Android 应用程序的地图中显示用户的实时位置?【英文标题】:How to display live location of user within a map in an android app? 【发布时间】:2016-11-08 16:11:00 【问题描述】:

我正在开发一个应用程序模块,该模块直接与用户交互,并从应用程序中跟踪用户的位置,并将其存储在数据库中作为LatitudeLongitude 字段。我正在使用mysql databse

我使用了一个概念,我正在重复 Web Service 请求以从数据库中获取最新的 lat long 以及将其推送到数据库以使用 存储相同的API 端点。但同样的效率不高,而且会大量消耗电池电量。

所以我想知道如何制作一个位置感知应用程序,它可以显示用户的实时位置,而无需重复调用端点。

间接地,我想知道像 OLA 或 UBER 这样的应用程序如何显示附近的出租车,还可以显示出租车从一个点移动到另一个点的准确位置。

TIA

【问题讨论】:

【参考方案1】:

您不必进行重复的网络调用来将位置推送到您的服务器。根据早期实现的,你可以做以下两件事:

1) 每 40-60 秒推送一次位置(时间间隔由您决定)

2) 当用户移动时推送位置,比如大约 100 米。(同样,距离取决于你)

总而言之,您需要在代码中并行观察时间和距离,然后进行网络调用。

【讨论】:

我说“重复”通话时的意思是一样的 那么没有别的办法了! 你确定还是不知道? 你知道 websocket 吗? 不,我知道 androidios【参考方案2】:

如果有人正在寻找解决方案,这对我有用

我使用了一个 relatime DB ex Firebaserethinkdb。现在在OnLocationChange 中更新数据库中的值或添加相同的值。确保要显示的对象始终显示最后一项。因此它将移动到新位置。

【讨论】:

以上是关于如何在 Android 应用程序的地图中显示用户的实时位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android的地图上显示数据库中存储的位置?

Android 谷歌地图 API

谷歌地图光束在 android MapFragment 中显示用户方向/标题

如何在Android中限制地图?

Android 在地图上显示用户

如何使用 Android 谷歌地图功能?