你是如何用滴滴打到车的?是不是感觉这个问题很傻很天真。
普通青年:报告张叔叔,是滴滴软件给我安排的司机师傅。
文艺青年:叔叔张,缘分使然,合适的时间遇到了合适的师傅。
2B青年:点了下按钮,嗖一下师傅就到了,定位还贼准,奇了怪了!
但是作为一个互联网青年,标准答案是什么呢
互联网青年:打车需求发出后,滴滴平台通过调度系统把最合适的师傅匹配给用户,完成了一次交易。
今天张叔叔就带大家一起了解一下,当你通过滴滴打车的时候,整个滴滴的系统是如何工作的,跟着张叔叔一起学习,相信坚持与专注的力量!
首先大家要先明确滴滴系统上几类角色。
乘客:也就是你我这种打车的用户,我们是有乘车需求的人。
司机:司机师傅,提供驾驶服务,满足我们需求的人。
滴滴平台:担任中介,把司机和乘客匹配到一起,起到纽带的作用,作为中间商挣差价。
无论乘客还是司机,第一步都需要在滴滴系统上进行注册,并且标明自己的身份。普通用户注册还是比较容易的,按照提示输入用户信息就可以了。但是司机师傅比较复杂一些,毕竟需要证明你是一名有资质的司机,证明你有车等等。正是因为拥有这两个群体,滴滴平台才能把乘客的打车需求发布给司机师傅,司机师傅就可以到指定的地点去接你了。就是这么的神奇!
为了讲解方便,我们假设你现在想通过滴滴打一辆出租车从家到动物园,这个过程中发生了什么呢?
当你打开滴滴软件的时候,按照提示输入了出发地点和目的地址。心细的话你会发现滴滴的出发地是自动填写上的,这个是怎么实现的呢?其实很简单,滴滴软件可以获取你手机所在的位置(经纬度喔),然后通过经纬度就可以在地图上定位到你的位置,哪个小区哪个街道一查就知道了,然后就自动帮你填写了出发地点。
填写完出发地点和目的地之后,你点击了“呼叫出租车”按钮。这个时候你的手机通过网络把你的请求发送到滴滴的服务器上面,请求的大概信息包括:用户,出发地,目的地,打出租车。滴滴服务器解析你的请求之后便开始搜索出发地点附近的出租车,并把你打车的订单发送给这些司机师傅。这个过程中,有两个问题需要大家思考一下,滴滴怎么知道哪些出租车在出发地点附近的?滴滴是怎么把你的消息发送到这些司机师傅手机上面的?大家先自己思考一分钟,后面张叔叔揭晓答案。
有没有自己想到答案?张叔叔先揭晓第一个问题答案,滴滴怎么知道出发地点附近有哪些出租车。其实很简单,所有在手机上安装了滴滴软件的师傅,当师傅打开软件接单的时候,自己的手机位置会实时的上报到滴滴服务器。滴滴就知道了这些师傅实时所在的位置,那么想查找出发地附近的师傅就很简单了。如果师傅没有安装滴滴,或者即使安装了滴滴但是没有打开软件的话,滴滴是不可能知道出租车在哪的。
那你呼叫出租车的需求是怎么发送到司机师傅手机上的呢?这个地方又要依赖计算机网络了。司机师傅打开滴滴软件并处于接单状态之后,师傅的手机通过计算机网络与滴滴的服务器建立了一条连接。通过这条连接获取你订单消息的方式有两种。
第一种是单向请求型,啥意思呢,就是司机师傅的手机会不断的去滴滴服务器上面询问:现在有没有附近的订单啊,赶快发给我啊,我现在很闲啊。如果有订单信息,服务器就会把信息返回到司机师傅的手机上。这个是不是很烦?服务器都要被司机师傅的手机烦死了,如果没有订单也要一直不厌其烦的回复,“没有啊,没有啊,没有啊”。
第二种是互动型,那就是在连接上双向地发送信息,司机师傅不再是主动询问有没有订单,而是服务器主动的把订单信息传送到司机师傅手机上面。是不是感觉社会地位瞬间就上去了,本来像要账的孙子,现在只需要坐在家里守株待兔就可以了。
当司机师傅的手机收到订单消息之后,会通过滴滴上的语音模块播报出来“有新的乘车订单,现在出发,从某某地点到动物园”,如果师傅想接单的话,那么他就可以抢单了。师傅抢单的信息的会被传送到滴滴服务器上面,如果就师傅一个人抢单,那么这个师傅就分配给你了;如果有多个师傅抢单呢,滴滴服务器会计算出最适合接你的师傅,然后把这个师傅分配给你。滴滴服务器这个时候需要做的事情很多:
(1)记录订单信息,什么时候,哪位师傅接了哪个乘客的订单。
(2)把订单成功的消息分别告诉你和师傅,通知他们接单成功了。
(3)把乘客的联系方式以及实时地理位置发送给司机师傅,把司机师傅的位置发送给乘客。
正是由于这些工作,你才能看到自己被师傅接单了,并且可以看到师傅在什么位置,距离你大概多远。师傅也根据地图上你的位置来接你,最终这一次打车需求就被满足了。
上车之后你盯着手机屏幕,发现上面自己的位置实时变动着,不论出租车加速减速,出租车拐弯都能在地图上展现出来。这个是怎么实现的?很容易就可以想到,这是因为滴滴服务端可以实时知道你手机所在的位置,然后不断的更新你在地图上的位置就可以了。
这个时候,在动物园门口有个小姑娘焦急地等待着你,你们第一次相约来动物园,你竟然快要迟到了。小姑娘掏出手机给你发了一条微信“你到哪了,还有多久能到,我已经把票买好了,等你”。看到信息的你也是一阵不安,边回复微信边问司机师傅“师傅,大概多久到动物园啊?” 师傅通过后视镜看了你一眼,微笑回道“有人在等你吧?你可以看看滴滴上面有预计到达时间。”话音刚落你就迅速打开了滴滴,发现屏幕上显示预估到达时间是20分钟。你给小姑娘回复了预估到达时间,背靠座椅舒了一口气,脑海中除了浮现出你们一起逛动物园的场景,还有一个问题挥之不去:距离目的地的距离以及到达目的地的时间是怎么算出来的呢?
张叔叔来揭晓答案。首先滴滴规划好师傅的路线之后,可以根据地图上道路的长度推算出实际距离目的地的距离。时间 = 路程 / 速度,现在知道路程了,那么速度怎么知道呢?这个地方还是根据出租车的实时上报位置算出来的,比如此刻在A点,10秒钟之后到达了B点,然后根据地图推算出AB之间的距离,然后除以10秒就可以算出出租车的大概速度了。那么预估时间就等于此刻位置到动物园的距离除以出租车的速度。
“小伙子,前面道路可能有点堵,要不我换条路线吧?”师傅一脸愁容的问道。
“嗯嗯,可以,只要尽快到达目的地就可以。”你边和小姑娘聊天边回复着,不过你突然抬起头问道“师傅,你怎么知道前面有点堵的,我也看不出堵车呢。”
“你看看滴滴软件,上面有提示的,红色的线路表明道路拥挤,绿色的表示畅通,我们还是换一条绿色的线路行驶吧。”说话间师傅已经驶向了地图上指示的绿色标识的道路。不出所料,一路畅通,很快就把你送到了动物园门口。
爱思考的你又被这个问题难住了,滴滴怎么知道哪堵车的呢?一般获取道路拥挤方式主要有两种方式。
第一种方式是从其他途径获取道路情况。比如从交通管理部门获取数据,交通管理部门掌握着所有交通道路的运行情况,如果从他们那获取到道路情况,不就知道哪拥挤哪畅通了嘛。
第二种方式就是根据当前道路上使用滴滴的用户量进行预估,这个要好好理解喔。如果安装滴滴软件的用户很多,那么当他们行驶在路上得时候,每一个滴滴软件的实时位置都会上报到滴滴服务端,滴滴就可以知道目前在每条道路上的车辆有多少了,然后根据车辆多少就可以预估出来哪条道路拥挤了。这个预估的前提是滴滴的车辆要足够多。提供导航的软件(比如高德地图,百度地图)也都可以预估道路拥挤情况,而且安装用户越多预估越准。
下车后你通过微信或者支付宝支付了师傅的费用(这个流程和你妈妈在淘宝购物付款的流程差不多,感兴趣的可以查看之前的文章喔),然后迫不及待的跑到了动物园门口。小姑娘不在门口,你环顾四周还是依旧没有找到小姑娘,你掏出手机要给小姑娘打电话,突然背后被人拍了一下,“哈哈,我在这呢!”。
前段时间滴滴顺风车有两位乘客遇害,之后滴滴公司也开始整改。作为普通的乘客,在乘车时应该如何防范未知的危险呢。张叔叔给出如下建议:
乘坐滴滴顺风车后,要注意第一时间向家人或者朋友汇报自己的位置,微信里面分享分享,包括顺风车车牌号,司机外貌等等。
特别注意女性朋友 夜晚打车,尽量找顺风车车主信任值很高的,这样的车主安全系数高一些。
为了安全起见,女性朋友夜晚打车最好搭乘女司机的顺风车,这样来说更加安全一些,是相对来说的。
乘坐滴滴顺风车时,女性朋友尽量坐到车辆的后排,这样比较安全一些,尽量不要坐前排位置,那里会危险一些的。
注意夏天女性朋友打车,穿着不要太暴露和性感,不要穿超短裙、抹胸衣服等等,以免引起司机的欲望带来麻烦。
女性朋友打车时,要最好能结伴而行,不要独自一人打车,特别是偏远的地方更是不要去。一旦被司机侵犯,注意保护好自己生命最重要。