vue+echarts 地图实现三级下钻
html代码
-
<!-- 中下图表 -->
-
<div class="centerBOT centerdiv" style="position: relative;">
-
<div class="top">
-
<div class="span" :class="[index==1?'active':'']" @click="all(1)">地图</div>
-
<div class="span" :class="[index==2?'active':'']" @click="all(2)">机构</div>
-
</div>
-
<el-button size="mini" type="primary" @click="backMap()" class="btn" v-if="index==1" style="position: absolute; right: 5%;z-index: 999;">返回概览</el-button
-
>
-
<div class="left" ref="myEcharts" style="width:100%;height:100%" v-show="index==1">
-
</div>
-
<div v-show="index==2"> 我是一个盒子,我不知道我该装些什么</div>
-
-
</div>
引入(npm i 下载对应的依赖包 echarts版本是5.3的)
-
import * as echarts from "echarts";
-
import $ from "jquery";
-
js代码
-
mounted() {
-
this.getlist()
-
setTimeout(()=>{
-
this.mapChart()
-
},500)
-
},
-
data() {
-
return {
-
allData:[]
-
};
-
}
-
methods: {
-
// 返回第一级
-
backMap() {
-
this.mapChart();
-
},
-
all(value){
-
this.index=value
-
},
-
// 配置渲染map
-
mapChart() {
-
console.log('我渲染了中国地图')
-
let that = this
-
let myChart = echarts.init(this.$refs.myEcharts);
-
// 监听 页面发生 变化
-
window.addEventListener("resize", () => {
-
myChart.resize();
-
});
-
-
// 渲染首页地图
-
$.getJSON(`/map/china.json`, (data) => {
-
console.log(data,'数据')
-
// 注册
-
echarts.registerMap('china', data);
-
// 渲染
-
initEcharts('china');
-
});
-
-
//将数据渲染上去
-
function initEcharts(map) {
-
let option = {
-
// 悬浮数据
-
tooltip: {
-
show: true,
-
formatter: function(params) {
-
if (params.data) return params.name ':' params.data['value']
-
},
-
},
-
// 左侧图表值联动
-
visualMap: {
-
type: 'continuous',
-
text: ['多', '少'],
-
showLabel: true,
-
left: '30',
-
bottom:'70',
-
min: 0,
-
max: 8,
-
inRange: {
-
color: ['#edfbfb', '#b7d6f3', '#40a9ed', '#3598c1', '#215096', ]
-
},
-
splitNumber: 0
-
},
-
// 定义数据来源
-
series: [
-
{
-
name: '人数',
-
type: 'map',
-
mapType: map,
-
zoom: 1.2,
-
selectedMode: 'false',//是否允许选中多个区域
-
label: {
-
normal: {
-
show: true
-
},
-
emphasis: {
-
show: true
-
}
-
},
-
data: that.allData
-
}
-
]
-
-
};
-
myChart.setOption(option);
-
}
-
-
//定义全国省份的数组
-
var provinces = {
-
// 23个省
-
台湾: "taiwan",
-
河北: "hebei",
-
山西: "shanxi",
-
辽宁: "liaoning",
-
吉林: "jilin",
-
黑龙江: "heilongjiang",
-
江苏: "jiangsu",
-
浙江: "zhejiang",
-
安徽: "anhui",
-
福建: "fujian",
-
江西: "jiangxi",
-
山东: "shandong",
-
河南: "henan",
-
湖北: "hubei",
-
湖南: "hunan",
-
广东: "guangdong",
-
海南: "hainan",
-
四川: "sichuan",
-
贵州: "guizhou",
-
云南: "yunnan",
-
陕西: "shanxi1",
-
甘肃: "gansu",
-
青海: "qinghai",
-
// 5个自治区
-
新疆: "xinjiang",
-
广西: "guangxi",
-
内蒙古: "neimenggu",
-
宁夏: "ningxia",
-
西藏: "xizang",
-
// 4个直辖市
-
北京: "beijing",
-
天津: "tianjin",
-
上海: "shanghai",
-
重庆: "chongqing",
-
// 2个特别行政区
-
香港: "xianggang",
-
澳门: "aomen",
-
};
-
-
// 市
-
var cityMap = {
-
北京市: "110100",
-
天津市: "120100",
-
上海市: "310100",
-
重庆市: "500100",
-
崇明县: "310200",
-
湖北省直辖县市: "429000",
-
铜仁市: "522200",
-
毕节市: "522400",
-
石家庄市: "130100",
-
唐山市: "130200",
-
秦皇岛市: "130300",
-
邯郸市: "130400",
-
邢台市: "130500",
-
保定市: "130600",
-
张家口市: "130700",
-
承德市: "130800",
-
沧州市: "130900",
-
廊坊市: "131000",
-
衡水市: "131100",
-
太原市: "140100",
-
大同市: "140200",
-
阳泉市: "140300",
-
长治市: "140400",
-
晋城市: "140500",
-
朔州市: "140600",
-
晋中市: "140700",
-
运城市: "140800",
-
忻州市: "140900",
-
临汾市: "141000",
-
吕梁市: "141100",
-
呼和浩特市: "150100",
-
包头市: "150200",
-
乌海市: "150300",
-
赤峰市: "150400",
-
通辽市: "150500",
-
鄂尔多斯市: "150600",
-
呼伦贝尔市: "150700",
-
巴彦淖尔市: "150800",
-
乌兰察布市: "150900",
-
兴安盟: "152200",
-
锡林郭勒盟: "152500",
-
阿拉善盟: "152900",
-
沈阳市: "210100",
-
大连市: "210200",
-
鞍山市: "210300",
-
抚顺市: "210400",
-
本溪市: "210500",
-
丹东市: "210600",
-
锦州市: "210700",
-
营口市: "210800",
-
阜新市: "210900",
-
辽阳市: "211000",
-
盘锦市: "211100",
-
铁岭市: "211200",
-
朝阳市: "211300",
-
葫芦岛市: "211400",
-
长春市: "220100",
-
吉林市: "220200",
-
四平市: "220300",
-
辽源市: "220400",
-
通化市: "220500",
-
白山市: "220600",
-
松原市: "220700",
-
白城市: "220800",
-
延边朝鲜族自治州: "222400",
-
哈尔滨市: "230100",
-
齐齐哈尔市: "230200",
-
鸡西市: "230300",
-
鹤岗市: "230400",
-
双鸭山市: "230500",
-
大庆市: "230600",
-
伊春市: "230700",
-
佳木斯市: "230800",
-
七台河市: "230900",
-
牡丹江市: "231000",
-
黑河市: "231100",
-
绥化市: "231200",
-
大兴安岭地区: "232700",
-
南京市: "320100",
-
无锡市: "320200",
-
徐州市: "320300",
-
常州市: "320400",
-
苏州市: "320500",
-
南通市: "320600",
-
连云港市: "320700",
-
淮安市: "320800",
-
盐城市: "320900",
-
扬州市: "321000",
-
镇江市: "321100",
-
泰州市: "321200",
-
宿迁市: "321300",
-
杭州市: "330100",
-
宁波市: "330200",
-
温州市: "330300",
-
嘉兴市: "330400",
-
湖州市: "330500",
-
绍兴市: "330600",
-
金华市: "330700",
-
衢州市: "330800",
-
舟山市: "330900",
-
台州市: "331000",
-
丽水市: "331100",
-
合肥市: "340100",
-
芜湖市: "340200",
-
蚌埠市: "340300",
-
淮南市: "340400",
-
马鞍山市: "340500",
-
淮北市: "340600",
-
铜陵市: "340700",
-
安庆市: "340800",
-
黄山市: "341000",
-
滁州市: "341100",
-
阜阳市: "341200",
-
宿州市: "341300",
-
六安市: "341500",
-
亳州市: "341600",
-
池州市: "341700",
-
宣城市: "341800",
-
福州市: "350100",
-
厦门市: "350200",
-
莆田市: "350300",
-
三明市: "350400",
-
泉州市: "350500",
-
漳州市: "350600",
-
南平市: "350700",
-
龙岩市: "350800",
-
宁德市: "350900",
-
南昌市: "360100",
-
景德镇市: "360200",
-
萍乡市: "360300",
-
九江市: "360400",
-
新余市: "360500",
-
鹰潭市: "360600",
-
赣州市: "360700",
-
吉安市: "360800",
-
宜春市: "360900",
-
抚州市: "361000",
-
上饶市: "361100",
-
济南市: "370100",
-
青岛市: "370200",
-
淄博市: "370300",
-
枣庄市: "370400",
-
东营市: "370500",
-
烟台市: "370600",
-
潍坊市: "370700",
-
济宁市: "370800",
-
泰安市: "370900",
-
威海市: "371000",
-
日照市: "371100",
-
莱芜市: "371200",
-
临沂市: "371300",
-
德州市: "371400",
-
聊城市: "371500",
-
滨州市: "371600",
-
菏泽市: "371700",
-
郑州市: "410100",
-
开封市: "410200",
-
洛阳市: "410300",
-
平顶山市: "410400",
-
安阳市: "410500",
-
鹤壁市: "410600",
-
新乡市: "410700",
-
焦作市: "410800",
-
濮阳市: "410900",
-
许昌市: "411000",
-
漯河市: "411100",
-
三门峡市: "411200",
-
南阳市: "411300",
-
商丘市: "411400",
-
信阳市: "411500",
-
周口市: "411600",
-
驻马店市: "411700",
-
省直辖县级行政区划: "469000",
-
武汉市: "420100",
-
黄石市: "420200",
-
十堰市: "420300",
-
宜昌市: "420500",
-
襄阳市: "420600",
-
鄂州市: "420700",
-
荆门市: "420800",
-
孝感市: "420900",
-
荆州市: "421000",
-
黄冈市: "421100",
-
咸宁市: "421200",
-
随州市: "421300",
-
恩施土家族苗族自治州: "422800",
-
长沙市: "430100",
-
株洲市: "430200",
-
湘潭市: "430300",
-
衡阳市: "430400",
-
邵阳市: "430500",
-
岳阳市: "430600",
-
常德市: "430700",
-
张家界市: "430800",
-
益阳市: "430900",
-
郴州市: "431000",
-
永州市: "431100",
-
怀化市: "431200",
-
娄底市: "431300",
-
湘西土家族苗族自治州: "433100",
-
广州市: "440100",
-
韶关市: "440200",
-
深圳市: "440300",
-
珠海市: "440400",
-
汕头市: "440500",
-
佛山市: "440600",
-
江门市: "440700",
-
湛江市: "440800",
-
茂名市: "440900",
-
肇庆市: "441200",
-
惠州市: "441300",
-
梅州市: "441400",
-
汕尾市: "441500",
-
河源市: "441600",
-
阳江市: "441700",
-
清远市: "441800",
-
东莞市: "441900",
-
中山市: "442000",
-
潮州市: "445100",
-
揭阳市: "445200",
-
云浮市: "445300",
-
南宁市: "450100",
-
柳州市: "450200",
-
桂林市: "450300",
-
梧州市: "450400",
-
北海市: "450500",
-
防城港市: "450600",
-
钦州市: "450700",
-
贵港市: "450800",
-
玉林市: "450900",
-
百色市: "451000",
-
贺州市: "451100",
-
河池市: "451200",
-
来宾市: "451300",
-
崇左市: "451400",
-
海口市: "460100",
-
三亚市: "460200",
-
三沙市: "460300",
-
成都市: "510100",
-
自贡市: "510300",
-
攀枝花市: "510400",
-
泸州市: "510500",
-
德阳市: "510600",
-
绵阳市: "510700",
-
广元市: "510800",
-
遂宁市: "510900",
-
内江市: "511000",
-
乐山市: "511100",
-
南充市: "511300",
-
眉山市: "511400",
-
宜宾市: "511500",
-
广安市: "511600",
-
达州市: "511700",
-
雅安市: "511800",
-
巴中市: "511900",
-
资阳市: "512000",
-
阿坝藏族羌族自治州: "513200",
-
甘孜藏族自治州: "513300",
-
凉山彝族自治州: "513400",
-
贵阳市: "520100",
-
六盘水市: "520200",
-
遵义市: "520300",
-
安顺市: "520400",
-
黔西南布依族苗族自治州: "522300",
-
黔东南苗族侗族自治州: "522600",
-
黔南布依族苗族自治州: "522700",
-
昆明市: "530100",
-
曲靖市: "530300",
-
玉溪市: "530400",
-
保山市: "530500",
-
昭通市: "530600",
-
丽江市: "530700",
-
普洱市: "530800",
-
临沧市: "530900",
-
楚雄彝族自治州: "532300",
-
红河哈尼族彝族自治州: "532500",
-
文山壮族苗族自治州: "532600",
-
西双版纳傣族自治州: "532800",
-
大理白族自治州: "532900",
-
德宏傣族景颇族自治州: "533100",
-
怒江傈僳族自治州: "533300",
-
迪庆藏族自治州: "533400",
-
拉萨市: "540100",
-
昌都地区: "542100",
-
山南地区: "542200",
-
日喀则地区: "542300",
-
那曲地区: "542400",
-
阿里地区: "542500",
-
林芝地区: "542600",
-
西安市: "610100",
-
铜川市: "610200",
-
宝鸡市: "610300",
-
咸阳市: "610400",
-
渭南市: "610500",
-
延安市: "610600",
-
汉中市: "610700",
-
榆林市: "610800",
-
安康市: "610900",
-
商洛市: "611000",
-
兰州市: "620100",
-
嘉峪关市: "620200",
-
金昌市: "620300",
-
白银市: "620400",
-
天水市: "620500",
-
武威市: "620600",
-
张掖市: "620700",
-
平凉市: "620800",
-
酒泉市: "620900",
-
庆阳市: "621000",
-
定西市: "621100",
-
陇南市: "621200",
-
临夏回族自治州: "622900",
-
甘南藏族自治州: "623000",
-
西宁市: "630100",
-
海东地区: "632100",
-
海北藏族自治州: "632200",
-
黄南藏族自治州: "632300",
-
海南藏族自治州: "632500",
-
果洛藏族自治州: "632600",
-
玉树藏族自治州: "632700",
-
海西蒙古族藏族自治州: "632800",
-
银川市: "640100",
-
石嘴山市: "640200",
-
吴忠市: "640300",
-
固原市: "640400",
-
中卫市: "640500",
-
乌鲁木齐市: "650100",
-
克拉玛依市: "650200",
-
吐鲁番地区: "652100",
-
哈密地区: "652200",
-
昌吉回族自治州: "652300",
-
博尔塔拉蒙古自治州: "652700",
-
巴音郭楞蒙古自治州: "652800",
-
阿克苏地区: "652900",
-
克孜勒苏柯尔克孜自治州: "653000",
-
喀什地区: "653100",
-
和田地区: "653200",
-
伊犁哈萨克自治州: "654000",
-
塔城地区: "654200",
-
阿勒泰地区: "654300",
-
自治区直辖县级行政区划: "659000",
-
台湾省: "710000",
-
香港特别行政区: "810100",
-
澳门特别行政区: "820000",
-
};
-
// 点击事件情况
-
myChart.off('click');
-
-
// 点击触发查找省或市的数据
-
myChart.on("click", (param) => {
-
console.log("触发了", param);
-
if (param.name in provinces) {
-
// 处理省模块
-
let names = param.name;
-
for (let key in provinces) {
-
if (names == key) {
-
showProvince(provinces[key], key);
-
break;
-
}
-
}
-
} else if (param.name in cityMap) {
-
// 处理市模块
-
let names = param.name;
-
for (let key in cityMap) {
-
if (names == key) {
-
showCitys(cityMap[key], key);
-
break;
-
}
-
}
-
}
-
});
-
-
//展示对应的省
-
function showProvince(eName, param) {
-
console.log(eName, param);
-
$.getJSON(`/map/province/${eName}.json`, (data) => {
-
console.log(data.value,'省id数据')
-
//请求接口数据
-
that.date.province=data.value
-
//请求接口
-
that.getlist(that.date)
-
-
setTimeout(()=>{
-
echarts.registerMap(param, data);
-
initEcharts(param);
-
},500)
-
-
});
-
}
-
-
//展示对应市
-
function showCitys(cName, param) {
-
console.log(cName, param);
-
// 显示县级地图
-
$.getJSON(`/map/city/${cName}.json`, (data) => {
-
console.log(data,'市下区的数据')
-
//请求接口数据
-
that.date.city=data.cName
-
//请求接口
-
that.getlist(that.date)
-
-
setTimeout(()=>{
-
echarts.registerMap(param, data);
-
initEcharts(param);
-
},500)
-
-
});
-
}
-
-
-
}
-
-
}
在项目里的pulic 中定义地图文件(压缩包文件个人主页下载)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiahebc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22