高德(百度)地图驾车路线规划和清除

高德地图:
  1. 带途径点的路径规划:
var markerList=[
	{
         lng:116.379028,
         lat:39.865042
    },
    {
         lng:116.379028,
         lat:39.885042,          
    },
    {
         lng:116.379028,
         lat:39.915042,         
    }
];

//加载路径规划插件
AMap.plugin('AMap.Driving', function() {
     var driving = new AMap.Driving({
         map: map,
    });

    //拼接途径点
    var waypoints=[];
    for(var i=1;i<markerList.length;i++){
        waypoints.push(new AMap.LngLat(markerList[i].lng,markerList[i].lat))
    }

    //绘制路线
    //起点和终点是同一个位置
    driving.search(new AMap.LngLat(markerList[0].lng,markerList[0].lat),new AMap.LngLat(markerList[0].lng,markerList[0].lat),{waypoints: waypoints}, function(status, result) {
         if (status === 'complete') {
              //保证所有覆盖物都在视野范围内
              map.setFitView();
         } else {
              alert('路线绘制失败!');
         }
    });
})
  1. 清除路线规划:
//清除上一次结果,可以清除地图上绘制的路线以及路径文本结果
driving.clear();        
百度地图:
  1. 路线规划:
var driving = new BMap.DrivingRoute(map, { 
    renderOptions: { 
        map: map, 
        autoViewport: true //自动调整地图层级
} 
});
var start = new BMap.Point(116.310791, 40.003419);
var end = new BMap.Point(116.486419, 39.877282);
driving.search(start, end);

重新设置起点终点的图标以及他们的偏移量:

var startIcon = new BMap.Icon(require('../assets/support/ic_qidian.png'), new BMap.Size(30,120),{
        anchor: new BMap.Size(10, 25),
});
var endIcon = new BMap.Icon(require('../assets/support/ic_zhongdian.png'), new BMap.Size(30,120),{
        anchor: new BMap.Size(10, 25),
});
driving.setMarkersSetCallback(function(result){
         result[0].marker.setOffset(new BMap.Size(0, 40));
         result[0].marker.setIcon(startIcon);
         result[1].marker.setOffset(new BMap.Size(12, 45));
         result[1].marker.setIcon(endIcon);
})

重新设置路线颜色:获取到路线规划的点的数组之后清除路线规划,重新设置折线。

driving.setPolylinesSetCallback(function(result){
          driving.clearResults();
          var points = [];
          result[0].Pq.map(function(item){
                points.push(new BMap.Point(item.lng,item.lat))
          })
          var polyline = new BMap.Polyline(points, {strokeColor:"#438EFF", strokeWeight:5, strokeOpacity:0.5});   //创建折线
          _this.mapModel.addOverlay(polyline);   //增加折线
})
  1. 清除路线规划:
if(this.driving){
	this.driving.clearResults();
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值