循环调用driving.search怎么按顺序实现每一条路径的轨迹回放
怎么实现路径按先后顺序回放?以下代码的执行结果是所有路径都同时回放。我想实现的效果是,第一条seach检索的路径轨迹回放完之后再回放第二条路径的轨迹回放,以此类推。
drawTrack(){
var _this = this;
_this.map.centerAndZoom(new BMap.Point(113.139612, 27.834782), 15);
for (let index = 0; index < _this.pointObj.length-1; index++) {
var driving = new BMap.DrivingRoute(_this.map, {
renderOptions: {
map: _this.map,
autoViewport: true
},
onMarkersSet:function(routes) {
if(index != 0) _this.map.removeOverlay(routes[0].marker); //删除多余起点
else _this.addClickHandler(_this.map, _this.openInfor[0], routes[0].marker); // 起点提示框
if(index != _this.pointObj.length-2) _this.map.removeOverlay(routes[1].marker);//删除多余终点
else _this.addClickHandler(_this.map, _this.openInfor[1], routes[1].marker); // 终点提示框
},
onSearchComplete: function(res) {
var pts = res.getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var paths = pts.length; //获得有几个点
var carMk = new BMap.Marker(pts[0]);
_this.map.addOverlay(carMk);
var i=0;
function resetMkPoint(i){
carMk.setPosition(pts[i]);
if(i < paths){
setTimeout(function(){
i++;
resetMkPoint(i);
},100);
} else {
_this.map.removeOverlay(carMk);
}
}
setTimeout(function(){
resetMkPoint(5);
},100)
},
})
driving.search(_this.pointObj[index], _this.pointObj[index+1])
}
结果: 每条路径的onSearchComplete函数同时执行。
期望实现效果: 新加标注从第一个起点规划路径走到最后一个终点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
driving.search(start, end, {waypoint: arr}) 有三个参数,start:起点; end:终点; {waypoint:arr} 途经点,将途经点数组放进第三个参数里面即可以根据指定定位点绘制出路径规划