vue项目中引入echarts-map地图
如何在vue项目中使用地图
在初始的项目中安装下载echarts依赖:
https://blog.****.net/marslover521/article/details/85000788
通过上面的参考链接可以简单实现一个echarts图表,完成后再继续以下操作:
1.引入china.js
main.js
import echarts from 'echarts'
//引入中国地图依赖
import 'echarts/map/js/china'
2.使用china
xxx.vue
<template>
<div class="fl mapDiv">
<div class="mapCon">
<div class="title">城市品种个数</div>
<div id="mapChart" class="mapChart"></div>
</div>
</div>
</template>
<script>
import Vue from "vue";
// import Heatmap from "heatmap.js";
export default {
data() {
return {};
},
mounted() {
this.drawLine();
},
methods: {
drawLine() {
let data = [
{ name: "海门", value: 119 },
{ name: "鄂尔多斯", value: 112 },
{ name: "招远", value: 112 },
{ name: "舟山", value: 112 },
{ name: "齐齐哈尔", value: 114 },
{ name: "盐城", value: 115 },
{ name: "赤峰", value: 116 },
{ name: "青岛", value: 118 },
{ name: "乳山", value: 118 }
];
var mapChart = this.$echarts.init(document.getElementById("mapChart"));
var option = {
backgroundColor:'#fff',
tooltip: {
trigger: "item"
},
geo: {
map: "china",
right: "2%",
left: "30%",
label: {
normal: {
show: true,
color: "#fff"
},
emphasis: {
show: false
}
},
roam: true,
itemStyle: {
normal: {
borderWidth: 1,
areaColor: "rgba(128, 128, 128, 0)",
borderColor: "#3CC3FF"
},
emphasis: {
areaColor: "#3EF3F4"
}
}
},
series: [
{
name: "品种个数",
type: "scatter",
coordinateSystem: "geo",
data: convertData(data),
symbolSize: function(val) {
return val[2] / 10;
},
label: {
normal: {
formatter: "{b}",
position: "right",
show: false
},
emphasis: {
show: true
}
},
itemStyle: {
normal: {
color: "#ddb926"
}
}
},
{
name: "品种个数",
type: "effectScatter",
coordinateSystem: "geo",
data: convertData(
data.sort(function(a, b) {
return b.value - a.value;
}).slice(0, 6)
),
//标记大小,地图上的圆点
symbolSize: function(val) {
return val[2] / 10;
},
showEffectOn: "render",
rippleEffect: {
brushType: "stroke"
},
hoverAnimation: true,
label: {
//地图黄点显示内容
normal: {
formatter: "{b}",
position: "right",
show: true
}
},
itemStyle: {
normal: {
color: "#f4e925",
shadowBlur: 10,
shadowColor: "#333"
}
},
zlevel: 1
}
]
};
mapChart.setOption(option);
mapChart.resize();
}
}
};
</script>
<style>
.mapDiv {
width: 50%;
height: 50%;
padding: 10px;
box-sizing: border-box;
}
.mapCon .title {
position: absolute;
z-index: 1;
height: 34px;
line-height: 34px;
font-size: 18px;
font-weight: 700;
padding-left: 14px;
border-left: 6px solid #abd3d5;
box-sizing: border-box;
}
.mapCon,
.mapChart {
height: 100%;
width: 100%;
}
</style>