封路图标的位置就是避让路段
首先我们在 data 里声明一个 driving 为 null 用 this.driving 去接收轨迹 便于下次渲染轨迹时将其清除
避让的话我调用的是 setAvoidPolygons() 这个方法 他的参数是个二维数组
长这样
// [避让区域, 避让区域, ...]
// 每个避让区域 = [[lng, lat], [lng, lat], [lng, lat], ...] 这里至少三个点位 否则会避让失败
if (this.driving != null) {
this.driving.clear()// 判断清除上一个路线规划
}
this.isShow = false
this.map.plugin(["AMap.Driving"], () => { //加载驾车服务插件
var TruckDrivingOptions = {
map: this.map,
size: 1,
autoFitView: true,
};
let arr = []
if (this.brList.length) {
this.brList.forEach((item, index) => {
let bList = [[item.northEastLongitude * 1, item.northEastLatitude * 1], [item.southWestLongitude * 1, item.southWestLatitude * 1], [item.southWestLongitude * 1, item.northEastLatitude * 1]]
arr.push(bList)
})
}
this.driving = new this.amap.Driving(TruckDrivingOptions);
this.driving.setAvoidPolygons(arr)
this.driving.search(new this.amap.LngLat(this.myposition[0], this.myposition[1]), new this.amap.LngLat(item.longitude * 1, item.latitude * 1));
});
是不是很简单
高德 JS API 2.0 示例: 位置经纬度 + 驾车规划路线-驾车路线规划-示例中心-JS API 2.0 示例 | 高德地图API
高德 JS API 2.0: 参考手册-地图 JS API v2.0 | 高德地图API