一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情。
前言
上集咱们说到高德地图在vue的应用,发现高德地图有点复杂没有echart的百度地图使用起来比较简便,实际上同样功能高德地图开发了一天半时间,百度地图echarts只用了小半天时间(比半天还短),所以给大家分享一下百度地图的应用。上图:
绘制地图
- 安装
- 使用npm命令进行安装,默认安装是最新版本如果想安装指定版本记得加上版本号。
npm install echarts --save
- 引入echarts和中国地图的js包
import echarts from "echarts";
import "echarts/map/js/china";
- 初始化 创建一个装地图的容器并附上ID
<div class="mappage_con" id="mapCon"></div>
我们在DOM加载完成后进行对echarts的初始化,要在mouted中进行,如果放在created中会找不到元素的ID
echarts.init(document.getElementById("mapCon"));
- 地图配置
- 点击弹窗设置
我做的是鼠标放上去可以变色,点击某个区域进行弹窗展示详细信息;所以我们要在tooltip中设置具体参数为:trigger:提取默认值,triggerOn:事件名称,enterable:鼠标是否可以停留在弹窗上,
formatter为设置弹窗内的具体信息,其中回调参数是当前鼠标放在某个区域的信息,可以在内写HTML
var options = {
tooltip: {
trigger: "item",
triggerOn: "click",
enterable:true,
backgroundColor: 'transparent',
formatter: function (params) {
return ''<div onclick=goDetails('+JSON.stringify({name})+')>详情</div>'+
'</div>';
},
},
}
注意!如果在formatter中有点击事件的话,需要把该事件绑定到Window上否则获取不到该方法,所以我们需要在created时把该事件方法绑定到window
window.goDetails = this.goDetails;
- 模块数据展示和颜色设置 其中:type:设置成map地图模式,zoom:同比放大或者缩小多少倍,roam:是否开始树图,label:地区名称的一些设置比如北京市等等,areaStyle:区域填充样式,data:数据
series: [
{
name: "信息",
type: "map",
zoom:1.2,
mapType: "china",
roam: false,
label: {
show: true,
color: "rgb(249, 249, 249)",
},
data: [...this.list],
itemStyle: {
normal: {
borderWidth: 1, //边际线大小
borderColor: "#53a0ff3b", //边界线颜色
areaColor: "transparent", //默认区域颜色
},
emphasis: {
show: true,
areaColor: "#2D59E6", //鼠标滑过区域颜色
label: {
show: true,
textStyle: {
color: "#fff",
},
},
},
},
},
],
注意!itemStyle为每个区域模块的设置其中包括normal,emphasis
- 为整个地图的设置比如边界线、颜色、默认区域颜色
- emphasis为鼠标滑倒某个区域的设置,包括划过的区域颜色、label的字体颜色是否显示等
- 根据数据大小不同,对应的颜色也不同展示
在options内设置visualMap方法,其中:type设置为
piecewise这样看着舒服,具体请看文档,pieces为区域范围设置,最大最小值,label名称的显示和对应的区块颜色展示
visualMap: {
type: "piecewise",
pieces: [
{ min: 1001, max:9999 , label: "1001-9999", color: "#ee7263" },
{ min: 1, max: 1000, label: "1-1000", color: "#f5bba7" },
],
},
配置添加到echarts
现在咱们的配置写好了,需要把配置放到echarts上这样才能生效
mychinaChart.setOption(options)
参考资料
怎么样?就是这么简单,就是这么顺畅!