百度地图API绘制多点驾驶路线出错

在项目中使用百度地图API绘制多点驾驶路线时遇到问题,原本期望的连续路线显示为直线。经过分析,发现是由于网络延迟导致路径返回顺序错误。为解决此问题,采用了自定义函数,接收点的数组作为输入,确保路线按正确顺序绘制,从而修复了BUG。
摘要由CSDN通过智能技术生成

项目场景:

使用百度地图API绘制多点的驾驶路线

问题描述

在这里插入图片描述
BUG如上,各点之间出现直线,并没有按照驾驶路线划线

原因分析:

起初我以为是百度API的问题,以为driving.setSearchCompleteCallback返回的起点终点反了,在我仔细观察返回经纬度后发现问题在于使用for循环同时进行多个driving.search(point1, point2)的时候,由于网络延迟或者种种原因driving.setSearchCompleteCallback返回的路径并不是按照我发送的顺序,比如我search 1->2,2->3,3->4的路线,而driving.setSearchCompleteCallback返回点是2->3,1->2,3->4,所以就会出现上图的BUG

 for (let i = 0; i < route.length - 1; i++) {
   
                const {
    lat: lat1, lng: lng1 } = route[i]
                const {
    lat: lat2, lng: lng2 } = route[i + 1]
                let point1 = new BMap.Point(lng1, lat1)
                let point2 = new BMap.Point(lng2, lat2)
                driving.search(point1, point2)
          }
          driving.setSearchCompleteCallback(function () {
   
              const pts = driving.getResults().getPlan(0).getRoute(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值