導入方法:1、使用“npm install echarts -S”指令安裝echarts依賴;2、在“main.js”中全域引入echarts;3、在需要地圖的頁面中使用import語句引入“ china.js」文件,加入相關程式碼即可。
本教學操作環境:windows7系統、vue2.9.6版、DELL G3電腦。
需求:顯示各省名字,滑過標記地顯示接入數量,點擊標記地 顯示系統數量已接入及能跳轉對應頁面資訊的入口;
1.安裝依賴
npm install echarts -S
2.全域引入main.js
// 引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts
3.在需要地圖的頁面引入地圖 china.js查看官方文件 ,我自己保存的 china.js 點擊下載(提取碼4rxi )
import '../../../static/js/chinamap/china.js' // 引入中国地图数据
完整實例代碼:
<script> import &#39;../../../static/js/chinamap/china.js&#39; // 引入中国地图数据 export default { data() { return { ifbox:false, TipsList:[], } }, mounted() { this.ChinaMap(); }, methods: { //点击模拟数据右箭头跳转外页面, toClient(id){ this.$router.push({ path: "/Client", query: { lesseeCompanyId: id } }); }, ChinaMap(){ var that=this; //模拟数据 let data = [ {name: '海门', value: 90 ,num: 5,id:8}, {name: '鄂尔多斯', value: 102 , num: 15, id:16}, {name: '齐齐哈尔', value: 140, num: 30 ,id:20} ]; let geoCoordMap = { '海门':[121.15,31.89], '鄂尔多斯':[109.781327,39.608266], '齐齐哈尔':[123.97,47.33] }; var convertData = function(data) { var res = []; for (var i = 0; i < data.length; i++) { var geoCoord = geoCoordMap[data[i].name]; if (geoCoord) { res.push({ name: data[i].name, value: geoCoord.concat(data[i].value), num: geoCoord.concat(data[i].num), id: geoCoord.concat(data[i].id) }); } } return res; }; let myChartChina = this.$echarts.init(document.getElementById('myChartChina')) //这里是为了获得容器所在位置 window.onresize = myChartChina.resize; myChartChina.setOption({ // 进行相关配置 backgroundColor: '#1c2431',//地图背景色 geo: { // 这个是重点配置区 map: 'china', // 表示中国地图 label: { normal:{ show: true, // 是否显示对应地名 textStyle: { //字体颜色 color: '#797979' } }, emphasis: { show: false, textStyle: { color: '#fff' } } }, roam: true, itemStyle: { normal: { borderWidth: 1, // 地图边框宽度 borderColor: '#014888', // 地图边框颜色 areaColor: '#026295' // 地图颜色 }, emphasis: {//选中省份的颜色 areaColor: '#026295', shadowOffsetX: 0, shadowOffsetY: 0, shadowBlur: 0, borderWidth: 1, shadowColor: '#fff' } } }, //滑动显示数据 tooltip: { trigger: 'item', formatter: function(params) { return params.name + ' 已接入: ' + params.data.num[2]; } }, series: [{ name: '散点', type: 'scatter', coordinateSystem: 'geo', color:"#e1ebe3",//点的颜色 data: convertData(data), symbolSize: 25,//点的大小 symbol:"pin",//点的样式 cursor:"pointer",//鼠标放上去的效果 label: { normal: {//默认展示 show: false }, emphasis: {//滑过展示 show: false } }, itemStyle: { emphasis: { borderColor: '#5c8f6e', borderWidth: 5 } } }, { type: 'map', map: 'china', geoIndex: 0, aspectScale: 0.75, tooltip: { show: false } }, ], }) // if (myChartChina && typeof myChartChina === "object") { // myChartChina.setOption(myChartChina, true); // } myChartChina.on('click', function (params) { //点击事件 if (params.componentType === 'series') { if(params.data){ that.TipsList=params.data that.ifbox=true that.boxPosition() }else{ that.ifbox=false } } }); }, //点击地点显示对应位置数据 boxPosition(){ var e = event || window.event; var x=e.clientX+145+"px", y=e.clientY+5+"px"; clearTimeout(t) var t = setTimeout(function (){ $('#box').css('top',y), $('#box').css('left',x) }, 100); t }, } } </script>客户数量
3600租户数量
1500控制系统数量
20800接入系统数量
3600{{TipsList.name}}{{TipsList.value[2]}}
系统数量
{{TipsList.num[2]}}
已接入
提示:滚动鼠标滚轮控制地图缩放
完成後的圖片:樣式變更可查看官方文件自行修改;更多地圖實例請點選查看https://gallery.echartsjs.com/explore.html#charts=map~sort=rank~timeframe=all~ author=all
相關推薦:《vue.js教學》
以上是vue怎麼導入echarts地圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!