高德地图:
- 带途径点的路径规划:
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('路线绘制失败!');
}
});
})
- 清除路线规划:
//清除上一次结果,可以清除地图上绘制的路线以及路径文本结果
driving.clear();
百度地图:
- 路线规划:
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); //增加折线
})
- 清除路线规划:
if(this.driving){
this.driving.clearResults();
}