Vue 使用 Echarts 显示热力地图信息

vue

Vue 使用 Echarts 显示热力地图信息

主要是想实现到下面这个效果,然后省市地图根据后台返回的数据可以变换,地图以热力图的形式展现,鼠标移上可以显示该地区的数据信息。


为了方便维护,我把这个地图部分使用组件剥离了出来。

<template>

<div style="height: 100%;overflow: hidden;">

<div id="ditu" style="width: 117%;height:117%;float: left;margin-top: -40px;margin-left: -50px;"></div>

</div>

</template>

<script>

import echarts from \'echarts\' // 引入echarts

// 这是为了切换省市地图引入的json文件,因为切换省市需要使用json文件,每个省市有一个唯一的json文件编号,这里面是省市和编号对应的json对象,文件在后面会贴出来

import { cityMap } from "../../../../project/dataJson/china-main-city-map";

export default {

props: [\'showData\'], // 这是父组件传进省市数据信息

data() {

return {

charts: \'\',

}

},

watch: {

showData() {

// 当传进来的数据变了之后重新渲染

this.$nextTick(function () {

this.init("ditu")

})

},

},

mounted() {

// 初始化页面之后渲染地图

this.$nextTick(function () {

this.init("ditu")

})

},

methods: {

init(id) {

// 这个是根据省份名称获取到了省份对应的json文件编号,省份名称我存进了vuex,都可以

var cityId = cityMap[this.$store.state.defaultData.province];

// 拿到这个省市对应的json文件数据

var mapCode = require("../../../../../../assets/map/" + cityId + ".json");

// 两个参数,一个省份名称例如山东省,一个该省份json文件数据

echarts.registerMap(this.$store.state.defaultData.province, mapCode);

this.charts = echarts.init(document.getElementById(id))

// 下面就是造地图显示的数据

var outname = []

var outvalue = []

if (this.showData.name && this.showData.name.length > 0) {

outname = this.showData.name

outvalue = this.showData.values

} else {

outname = [\'东城区\', \'西城区\', \'朝阳区\', \'丰台区\', \'石景山区\', \'海淀区\', \'顺义区\', \'通州区\', \'大兴区\', \'房山区\', \'门头沟区\', \'昌平区\', \'平谷区\', \'密云区\', \'怀柔区\', \'延庆区\'];

outvalue = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

}

var outdata = [];

for (var i = 0; i < outname.length; i++) {

outdata.push({

name: outname[i],

value: outvalue[i]

})

}

let index = -1;

let option = {

tooltip: { // 提示框组件

show: true, // 显示提示框组件

trigger: "item", // 触发类型

triggerOn: "mousemove", // 出发条件

formatter: "地区名称:{b}<br/>基站数量:{c}"

},

visualMap: {

type: \'piecewise\',

left: \'50\',

bottom: \'40\',

itemWidth: 27,

itemHeight: 15,

textStyle: {

color: \'#333333\',

fontSize: 14,

},

pieces: [{

min: 100,

label: \'>100\',

}, {

max: 100,

min: 50,

label: \'50-100\',

}, {

max: 50,

min: 0,

label: \'<50\',

}, {

value: 0,

label: \'无数据\',

},],

inRange: {

color: [\'#B2CAE0\', \'#D2EAFF\', \'#8AC6FD\', \'#45A5F8\']

},

outOfRange: {

color: [\'#999999\']

}

},

geo: {

map: this.$store.state.defaultData.province,

show: true,

roam: false,

label: {

emphasis: {

show: false

}

},

itemStyle: {

normal: {

borderColor: \'rgba(0,63,140,0.2)\',

shadowColor: \'rgba(0,63,140,0.2)\',

shadowOffsetY: 10,

shadowBlur: 15

}

}

},

series: [{

type: \'map\',

map: this.$store.state.defaultData.province,

aspectScale: 0.75,

label: {

normal: {

show: false,

},

emphasis: {

show: false,

}

},

itemStyle: {

normal: {

areaColor: \'#B2CAE0\',

borderColor: \'#fff\',

borderWidth: 1,

},

emphasis: {

areaColor: \'#FFAE00\',

}

},

data: outdata

}]

};

this.charts.setOption(option, true);

},

}

}

</script>

<style scoped>

</style>

可以了,这样就,我的效果是出来了。

china-main-city-map.js 文件

export const cityMap = {

"安徽省": "340000",

"澳门特别行政区": \'820000\',

"北京市": \'110000\',

"重庆市":\'500000\',

"福建省": \'350000\',

"甘肃省": \'620000\',

"广东省": \'440000\',

"广西省": "450000",

"贵州省": \'520000\',

"海南省": \'460000\',

"河北省": \'130000\',

"黑龙江省": \'230000\',

"河南省": \'410000\',

"湖北省": \'420000\',

"湖南省": \'430000\',

"江苏省": \'320000\',

"江西省": \'360000\',

"吉林省": \'220000\',

"辽宁省": \'210000\',

"内蒙古自治区": \'150000\',

"宁夏回族自治区": \'640000\',

"青海省": \'630000\',

"山东省": \'370000\',

"上海": \'310000\',

"山西省": \'140000\',

"四川省": \'510000\',

"台湾": \'710000\',

"天津": \'120000\',

"新疆维吾尔自治区": \'650000\',

"陕西省": \'610000\',

"西藏自治区": \'540000\',

"云南省": \'530000\',

"浙江省": \'330000\',

"香港特别行政区": \'810000\',

"天津市": "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"

}

省市地图下载JSON文件的链接

http://datav.aliyun.com/tools/atlas/#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5

以上是 Vue 使用 Echarts 显示热力地图信息 的全部内容, 来源链接: utcz.com/z/376204.html

回到顶部