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-vision”库保存实时检测到的人脸(跟踪人脸)图像