接上篇
增加功能:
1.地图增加maker
2.maker连线
3.点击maker弹出dialog展示信息
效果图
正文开始
第一个功能:给地图增加maker
代码:let makerList = this.resMakerList.map((item, index) => {
return new AMap.Marker({
position: item,
zIndex: 101,
map: amap,
icon: red0
});
})
这里解释一下:resMakerList的格式是二维数组,每一项是对应maker点位的坐标:[[111,222],[222,333]],以此类推。axios请求回来的数据处理一下成为二维数组 然后map一下直接初始化maker就可以了,特别简单。
如何给maker绑定点击事件
代码:makerList.map((item, index) =>
item.on("click", () => {
//写入展示dialog的逻辑
})
)
这里第二个参数传参外层要包裹箭头函数,如果不包裹会立即执行该函数。
这里有个大坑:需要在amap的配置项中增加:echartsLayerZIndex: 100这个option。
因为最上层的图层是echarts的图层,如果不加该属性,点不到地图的maker-。-。
maker连线
代码:var polyline = new AMap.Polyline({
map: amap,
path: this.resMakerList,
showDir: true,
strokeColor: "#28F", //线颜色
// strokeOpacity: 1, //线透明度
strokeWeight: 6 //线宽
// strokeStyle: "solid" //线样式
});
},
path就是点的坐标,与绘制maker的二维数组相同。