Android 应用程序中的实时跟踪

Posted

技术标签:

【中文标题】Android 应用程序中的实时跟踪【英文标题】:Real Time Tracking in Android App 【发布时间】:2015-08-03 07:15:43 【问题描述】:

像优步这样的应用如何实时跟踪出租车?让我详细介绍一下:-

    出租车定位到服务器。 然后服务器将该位置传达给尝试预订出租车的另一个​​用户应用程序。

我浏览了很多博客,之后我想到了以下解决方案来解决这两个问题:

    在一段时间间隔后,出租车将使用 http 请求与服务器进行经纬度通信。 用户应用程序将与服务器建立一个套接字,服务器中的任何更改都将通过该套接字传递给用户应用程序。

有没有更好的方法呢?请提供您对该问题的见解。

【问题讨论】:

android的LocationListener类中有一个名为onLocationChanged(Location location)的方法,它是Called when the location has changed. ,所以当cab改变它的位置时,它会被调用,你只需要将位置发送到服务器。跨度> @KaranMer :如果位置发生变化,知道这不是问题,但主要关心的是使用哪一个,轮询或套接字将信息从 Cab 传递到服务器,然后从服务器传递到用户应用程序。哪一个会是明智的选择? 然后查看***.com/questions/11789407/… 【参考方案1】:

我认为每辆出租车都将配备 GPS 跟踪器(可能是基于移动的应用程序也不确定)来跟踪和发送实时数据,一旦位置数据发生变化,建立的 TCP 连接将用于通信。

【讨论】:

【参考方案2】:

我的应用程序也有同样的问题,驱动程序在服务器的 mysql 表中发送他们的位置。我认为最好的方法是 WebSockets,在服务器和客户端之间创建连接并发送新的每次更改时的位置。 我真的不知道是否是最好的方法,但我会尝试这样做,也许也可以帮助你。 我正在使用 php,所以我将尝试使用 Ratchet:

Ratchet PHP

【讨论】:

是的。 Socket 是解决此问题的最佳解决方案之一。池化服务器无济于事。 到目前为止对我来说是最好的解决方案。我已经用Crossbar IO 解决了我的问题。 Crossbar使用WAMP协议,可以实现RPC或者Pub/Sub系统。【参考方案3】:

我认为出租车不会与服务器通信,反之亦然,直到有一些客户/乘客确定他的位置和目的地。客户的请求被发送到服务器,然后服务器寻找离客户/乘客更近的出租车。他们很有可能正在使用谷歌的GCM谷歌云消息服务。

【讨论】:

我猜你需要查看 uber 应用程序。登录后,您可以在屏幕上的地图中查看和查看出租车的实时移动。

以上是关于Android 应用程序中的实时跟踪的主要内容,如果未能解决你的问题,请参考以下文章

实时地图应用Android

Flutter 实时跟踪

使用“android-vision”库保存实时检测到的人脸(跟踪人脸)图像

使用 FusedlocationProviderClient Api 在 Android 中进行实时位置跟踪的问题

添加面部跟踪和实时识别到您的Android应用程序

跟踪 Android 设备的位置 [关闭]