开始接单之后,司机原地不动的问题
来源:4-15 位置微服务缓存司机实时定位(二)
zippen
2024-03-26
//GPS定位变化就自动提交给后端
wx.onLocationChange(function(resp) {
let latitude = resp.latitude;
let longitude = resp.longitude;
let speed = resp.speed;
看完了第四章,有个疑问,开启定位是在onLaunch里面,利用wx.onLocationChange函数获取实时定位,
然后我就产生了这么一个疑问,
1.司机打开小程序,onLaunch触发,把实时定位上传了;
2.然后司机原地不动,点击了开始接单按钮,那么开始接单按钮会清空司机的定位缓存、上线缓存,以及消息队列;
3.那这样的话,司机的定位缓存都没了,如何让乘客搜到司机呢?因为司机原地不动的话,不会再次触发wx.onLocationChange函数,那司机的定位就不会重新上传了,因此乘客就搜索不到司机,永远接不了单;
4.而且这种情况大概率是会发生的,因为没可能司机点击了开始接单按钮,还需要开车移动一下才能上传定位数据吧?肯定是打开app,点击开始接单按钮,原地等待乘客的订单啊。。。
5.因此如果司机原地不动的话,就永远接不了单了,因为点击“开始接单”按钮会清空之前的定位,但是司机又原地不动,产生不了新的定位,没有新的定位wx.onLocationChange不会触发,因此redis中并没有司机的定位信息,因此永远接不了单。
写回答
1回答
-
很明显你没有实际测试,实际上地球是转动的,天上微星也是动的,即便你手机放着不动,GPS定位也会有细微变化,你自己真机测试就知道了。以后不要凭空想象,实践才是最好的检验方法。
112024-03-26
相似问题