echarts结合高德api(amap)做散点和迁徙图Vue(2)

526 阅读1分钟

接上篇
增加功能:
1.地图增加maker
2.maker连线
3.点击maker弹出dialog展示信息 效果图

maker是自定义的maker(有点丑.... 没有ui得我只能靠钉钉截图sad),蓝线是maker连的轨迹线,红线是上一篇的echarts的攻击线。


正文开始

第一个功能:给地图增加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的二维数组相同。