实现Echarts 3D立体中国地图实现、世界地图、以及互相切换功能

6,945 阅读11分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~
如果大家喜欢,可以点赞或留言💕~~~~,谢谢大家⭐️⭐️⭐️~~~

在以往的地图里做了修改,加了一个3D立体效果的

效果图如下:

image.png

我这里采用的是echars地图实现,技术栈是vue

准备工作

需要引用几个文件echars.js、china.js、world.js、geoAtlasJson.js

    <!-- 中国地图 -->
    <script src="../../static/modify_echarts-4.7.0/china.js"></script>
    <!-- 世界地图 -->
    <script src="../../static/modify_echarts-4.7.0/world.js"></script>
    <script src="../js/geoAtlasJson.js"></script>

一级页面部分

HTML部分

创建两个容器,分别放置中国地图和世界地图

    <div>
        <div class="chinaMap" ref="chinaMap"></div>
        <div class="miniWorldMap" ref="miniWorldMap"></div>
    </div>

data数据部分

data: function () {
    return {
        chinaMap: "",//中国地图
        worldMap: "",//世界地图
        worldoption: {},
        chinaoption: {},
    }
},
mounted: function () {
    setTimeout(() => {
        this.$nextTick(function () {
            this.chinaConfigure();
            this.worldConfigure();
        });
    }, 0)
},

中国地图配置部分

methods: {
    // 中国地图配置代码
    chinaConfigure(mapdata) {
        this.chinaMap = echarts.init(document.querySelector('.chinaMap'));
        //1.中国地图
        var chinaMap = "../../static/echartsMapjsondata/json/province/china.json";
        //2.台湾省地图
        var taiWanMap = "../../static/echartsMapjsondata/json/province/taiwan.json";
        //3.海南省地图
        var haiNanMap = "../../static/echartsMapjsondata/json/province/hainan.json";
        //4.安徽省地图
        var anHuiMap = "../../static/echartsMapjsondata/json/province/anhui.json";
        //5.江西省地图
        var jiangXiMap = "../../static/echartsMapjsondata/json/province/jiangxi.json";
        //6.湖南省地图
        var huNanMap = "../../static/echartsMapjsondata/json/province/hunan.json";
        //7.云南省地图
        var yunNanMap = "../../static/echartsMapjsondata/json/province/yunnan.json";
        //8.贵州省地图
        var guiZhouMap = "../../static/echartsMapjsondata/json/province/guizhou.json";
        //9.广东省地图
        var guangDongMap = "../../static/echartsMapjsondata/json/province/guangdong.json";
        //10.福建省地图
        var fuJianMap = "../../static/echartsMapjsondata/json/province/fujian.json";
        //11.浙江省地图
        var zheJiangMap = "../../static/echartsMapjsondata/json/province/zhejiang.json";
        //12.江苏省地图
        var jiangSuMap = "../../static/echartsMapjsondata/json/province/jiangsu.json";
        //13.四川省地图
        var siChuanMap = "../../static/echartsMapjsondata/json/province/sichuan.json";
        //14.重庆市市地图
        var chongQingMap = "../../static/echartsMapjsondata/json/province/chongqing.json";
        //15.湖北省地图
        var huBeiMap = "../../static/echartsMapjsondata/json/province/hubei.json";
        //16.河南省地图
        var heNanMap = "../../static/echartsMapjsondata/json/province/henan.json";
        //17.山东省地图
        var shanDongMap = "../../static/echartsMapjsondata/json/province/shandong.json";
        //18.吉林省地图
        var jiLinMap = "../../static/echartsMapjsondata/json/province/jilin.json";
        //19.辽宁省地图
        var liaoNingMap = "../../static/echartsMapjsondata/json/province/liaoning.json";
        //20.天津市市地图
        var tianJinMap = "../../static/echartsMapjsondata/json/province/tianjin.json";
        //21.北京市市地图
        var beiJingMap = "../../static/echartsMapjsondata/json/province/beijing.json";
        //22.河北省地图
        var heBeiMap = "../../static/echartsMapjsondata/json/province/hebei.json";
        //23.山西省地图
        var shanXiMap = "../../static/echartsMapjsondata/json/province/shanxi.json";
        //24.陕西省地图
        var shanXi2Map = "../../static/echartsMapjsondata/json/province/shanxi1.json";
        //25.宁夏回族自治区省地图
        var ningXiaMap = "../../static/echartsMapjsondata/json/province/ningxia.json";
        //26.青海省地图
        var qingHaiMap = "../../static/echartsMapjsondata/json/province/qinghai.json";
        //27.西藏自治区地图
        var xiZangMap = "../../static/echartsMapjsondata/json/province/xizang.json";
        //28.黑龙江省地图
        var heiLongJiangMap = "../../static/echartsMapjsondata/json/province/heilongjiang.json";
        //29.内蒙古自治区地图
        var neimengGuMap = "../../static/echartsMapjsondata/json/province/neimenggu.json";
        //30.甘肃省地图
        var ganSuMap = "../../static/echartsMapjsondata/json/province/gansu.json";
        //31.新疆维吾尔自治区省地图
        var xinJiangMap = "../../static/echartsMapjsondata/json/province/xinjiang.json";
        //32.广西壮族自治区地图
        var guangxiMap = "../../static/echartsMapjsondata/json/province/guangxi.json";
        //33.上海地图
        var shangHai = "../../static/echartsMapjsondata/json/province/shanghai.json";
        var mapJson = [
            {
                name: "台湾",
                json: taiWanMap,
            },
            {
                name: "海南",
                json: haiNanMap,
            },
            {
                name: "安徽",
                json: anHuiMap,
            },
            {
                name: "江西",
                json: jiangXiMap,
            },
            {
                name: "湖南",
                json: huNanMap,
            },
            {
                name: "云南",
                json: yunNanMap,
            },
            {
                name: "贵州",
                json: guiZhouMap,
            },
            {
                name: "广东",
                json: guangDongMap,
            },
            {
                name: "福建",
                json: fuJianMap,
            },
            {
                name: "浙江",
                json: zheJiangMap,
            },
            {
                name: "江苏",
                json: jiangSuMap,
            },
            {
                name: "四川",
                json: siChuanMap,
            },
            {
                name: "重庆",
                json: chongQingMap,
            },
            {
                name: "湖北",
                json: huBeiMap,
            },
            {
                name: "河南",
                json: heNanMap,
            },
            {
                name: "山东",
                json: shanDongMap,
            },
            {
                name: "吉林",
                json: jiLinMap,
            },
            {
                name: "辽宁",
                json: liaoNingMap,
            },
            {
                name: "天津",
                json: tianJinMap,
            },
            {
                name: "北京",
                json: beiJingMap,
            },
            {
                name: "河北",
                json: heBeiMap,
            },
            {
                name: "山西",
                json: shanXiMap,
            },
            {
                name: "陕西",
                json: shanXi2Map,
            },
            {
                name: "宁夏",
                json: ningXiaMap,
            },
            {
                name: "青海",
                json: qingHaiMap,
            },
            {
                name: "西藏",
                json: xiZangMap,
            },
            {
                name: "黑龙江",
                json: heiLongJiangMap,
            },
            {
                // name: "内蒙古自治区",
                name: "内蒙古",
                json: neimengGuMap,
            },
            {
                name: "甘肃",
                json: ganSuMap,
            },
            {
                name: "新疆",
                json: xinJiangMap,
            },
            {
                name: "广西",
                json: guangxiMap,
            },
            {
                name: "上海",
                json: shangHai,
            },
        ];
        //设置初始地图
        var mapname = this.chinaMap;
        var data = [];
        data = mapdata;
        // console.log(data)
        //自己设置的假数据方便大家查看数据格式
        // var data = [
        //     { _id: "台湾", value: 1, NDTZJH: 188, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "北京", value: 2, NDTZJH: 488, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "天津", value: 3, NDTZJH: 288, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "河北", value: 4, NDTZJH: 388, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "山西", value: 5, NDTZJH: 188, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "内蒙古", value: 6, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "辽宁", value: 7, NDTZJH: 488, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "吉林", value: 8, NDTZJH: 588, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "黑龙江", value: 9, NDTZJH: 688, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "上海", value: 10, NDTZJH: 788, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "江苏", value: 11, NDTZJH: 388, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "浙江", value: 12, NDTZJH: 58, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "安徽", value: 13, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "福建", value: 14, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "江西", value: 15, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "山东", value: 16, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "河南", value: 17, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "湖北", value: 18, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "湖南", value: 19, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "重庆", value: 20, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "四川", value: 21, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "贵州", value: 22, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "云南", value: 23, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "西藏", value: 24, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "陕西", value: 25, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "甘肃", value: 26, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "青海", value: 27, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "宁夏", value: 28, NDTZJH: 118, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "新疆", value: 29, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "广东", value: 30, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "广西", value: 31, NDTZJH: 88, GSZE: "3,330,156", count: "9,01,302" },
        //     { _id: "海南", value: 32, NDTZJH: 28, GSZE: "3,330,156", count: "9,01,302", },
        //     { _id: "白城", value: 132, NDTZJH: 128, GSZE: "3,330,156", count: "9,01,302" },
        // ];
        this.chinaMap.on('click', function (e) {
            var chooseName = mapJson.filter((item) => {//我们根据名字来判断是否选择一种
                if(item.name == e.name.substring(0,2) ){
                    return item.name == e.name.substring(0,2);
                }else if(item.name == e.name.substring(0,3)){
                    return item.name == e.name.substring(0,3);
                }
            });
            // console.log(chooseName)
            //这里的chooseName是一个数组,我们需要获取到json 有兴趣可以打印
            window.sessionStorage.setItem('mapnamedata',JSON.stringify(chooseName));
            window.parent.parent.location = "../group_summarize/group_summarizesec.html";

        })
        window.onresize = this.chinaMap.resize //实现地图自适应
        var geoCoordMap = {
            '台湾省': [122, 23],
            '黑龙江省': [126.661669, 45.742347],
            '内蒙古省': [110.3467, 41.4899],
            "吉林省": [125.8154, 44.2584],
            '北京省': [116.4551, 40.2539],
            "辽宁省": [123.1238, 42.1216],
            "河北省": [114.4995, 38.1006],
            "天津省": [117.4219, 39.4189],
            "山西省": [112.3352, 37.9413],
            "陕西省": [109.1162, 34.2004],
            "甘肃省": [103.5901, 36.3043],
            "宁夏省": [106.3586, 38.1775],
            "青海省": [101.4038, 36.8207],
            "新疆省": [87.9236, 43.5883],
            "西藏省": [88.388277, 31.56375],
            "四川省": [103.9526, 30.7617],
            "重庆省": [108.384366, 30.439702],
            "山东省": [117.1582, 36.8701],
            "河南省": [113.4668, 34.6234],
            "江苏省": [118.8062, 31.9208],
            "安徽省": [117.29, 32.0581],
            "湖北省": [114.3896, 30.6628],
            "浙江省": [119.5313, 29.8773],
            "福建省": [119.4543, 25.9222],
            "江西省": [116.0046, 28.6633],
            "湖南省": [113.0823, 28.2568],
            "贵州省": [106.6992, 26.7682],
            "云南省": [102.9199, 25.4663],
            "广东省": [113.12244, 23.009505],
            "广西省": [108.479, 23.1152],
            "海南省": [110.3893, 19.8516],
            '上海省': [121.4648, 31.2891],
        };
        //给每个地区赋值
        var convertData = function (data) {
            //定义一个数组
            var res = [];
            //循环遍历每个区域值
            for (var i = 0; i < data.length; i++) {
                //获取坐标
                var geoCoord = geoCoordMap[data[i]._id];
                //判断是否有坐标
                if (geoCoord) {
                    //往数组里设置值
                    res.push({
                        name: data[i]._id,
                        value: geoCoord.concat(i + 1),
                        NDTZJH: data[i].NDTZJH || 0,//年度投资计划
                        GSZE: data[i].GSZE || 0,//概算总额
                        count: data[i].count || 0,//项目数量
                        LJZWC: data[i].LJZWC || 0,//累计投资完成
                        NDTZWC: data[i].NDTZWC || 0,// 年度投资完成
                    });
                }
            }
            return res;
        };
        this.chinaoption = {
            backgroundColor: 'transparent',
            geo: {
                    type: 'map',
                    map: 'china',
                    layoutCenter: ['50%', '50%'], //地图位置
                    layoutSize: '115%',
                    roam: false,
                    label: {
                        emphasis: {
                            show: false,
                            textStyle: {
                                color: '#fff',
                                align: 'center',
                            },
                        },
                    },
                    zoom: 1,
                    itemStyle: {
                        normal: {
                            shadowColor: '#0E4A92',
                            shadowOffsetX: -10,
                            shadowOffsetY: 10,
                            opacity: 1,
                        },
                        emphasis: {
                            show: true,
                            areaColor: '#90BFFC',

                        },
                    },
                    animation: false,
            },
            tooltip: {
                trigger: 'item',
                show: true,
                backgroundColor: "transparent",
                formatter: function (params) {
                    if (params.data) {
                        var htmlStr = '';
                        htmlStr += '<div class="bgboder">';
                        htmlStr += '<div id="city">' + params.name + '</div><div id="trans">aaaaa:' + params.data.NDTZJH + '<span>  万元</span>' + '</div><div id="trans">bbbb:' + params.data.NDTZWC + '<span>  万元</span>' + '</div><div id="trans">cccc:' + params.data.GSZE + '<span>  万元</span>' + '</div><div id="trans">dddd:' + params.data.LJZWC + '<span>  个</span>' + '</div>';
                        htmlStr += '</div>';
                        return htmlStr;
                    }
                },
                textStyle: {
                    width: 300,
                    height: 300,
                }
            },
            visualMap: {
                type: 'piecewise',
                inRange: {
                    color: ['#02F6F9', '#02F6F9', '#02F6F9']
                },
                pieces: [
                    // { min: 0, max: 99, color: 'transparent' }, //把地图小点设置成透明颜色transparent
                    {  color: 'red' },
                    {
                        min: 100,
                        max: 10000,
                        color: {
                            type: 'radial',
                            x: 0.5,
                            y: 0.5,
                            r: 0.5,
                            colorStops: [
                                { offset: 0, color: 'rgba(11,28,92,0)' },
                                { offset: 0.8, color: 'rgba(10,94,137, 0.5)' },
                                { offset: 1, color: 'rgba(2, 246, 249, 1)' }
                            ],
                            globalCoord: false // 缺省为 false
                        }
                    }
                ],
                show: false,
                textStyle: {
                    color: '#ffffff',
                    fontSize: 16
                }
            },
            series: [
                {
                    type: 'map',
                    map: 'china',
                    layoutCenter: ['50%', '50%'], //地图位置
                    layoutSize: '115%',
                    roam: false,
                    label: {
                        normal: {
                            show: true, // 是否显示对应地名
                            textStyle: {
                                color: '#fff'
                            }
                        },
                        emphasis: { // 对应的鼠标悬浮效果
                            show: true,
                            textStyle: {
                                color: '#fff'
                            }
                        }
                    },
                    itemStyle: {
                        normal: {
                            borderColor: '#49A5E8',
                            borderWidth: 0.8,
                            areaColor: '#02439E',
                        },
                        emphasis: {//鼠标移入的高亮状态
                            show: true,
                            areaColor: '#01215c',//
                        },
                    },
                    animation: false,
                },
                {
                    type: 'scatter',
                    coordinateSystem: 'geo',
                    data: convertData(data),
                    //symbol:'triangle',
                    symbolSize: 5,
                },

            ]
        }
        //加了一个点击后高亮显示效果片段代码,这里可以不用加,在有需求的时候可以加上
        // 全部取消高亮
        this.chinaMap.on('click', function (params) {
            this.chinaMap.dispatchAction({
                type: 'downplay',
                // dataIndex: params.dataIndex,
                seriesIndex: 0,
            });
        });
        // 设置高亮
        this.chinaMap.on('click', function (params) {
            this.chinaMap.dispatchAction({
                type: 'highlight',
                dataIndex: params.dataIndex,
                seriesIndex: 0,
            });
        });
        this.chinaMap.setOption(this.chinaoption);
        window.onresize = () => {
            this.chinaMap.resize()
        }
        window.addEventListener('resize', () => {
            this.chinaMap.resize()
        })
    },

         

世界地图配置部分

// 世界地图
worldConfigure() {
    this.worldMap = echarts.init(document.querySelector('.miniWorldMap'));
    this.worldoption = {
        series: [
            {
                name: 'World Population (2010)',
                type: 'map',
                mapType: 'world',
                clickable: false,
                // selectedMode:true,
                silent: true,
                // zoom:2,//地图放大1.2倍
                // roam: true,
                itemStyle: {
                    normal: {
                        areaColor: '#1044A9',
                        borderColor: 'none'
                    },
                    emphasis: {//对应的鼠标悬浮效果
                        show: true,
                        itemStyle: { areaColor: '#1044A9' }
                    }

                },
                label: {
                    show: false,
                },
                emphasis: {
                    show: false
                },
                data: [
                    { name: 'Afghanistan', value: 28397.812 },
                    { name: 'Angola', value: 19549.124 },
                    { name: 'Albania', value: 3150.143 },
                    { name: 'United Arab Emirates', value: 8441.537 },
                    { name: 'Argentina', value: 40374.224 },
                    { name: 'Armenia', value: 2963.496 },
                    { name: 'French Southern and Antarctic Lands', value: 268.065 },
                    { name: 'Australia', value: 22404.488 },
                    { name: 'Austria', value: 8401.924 },
                    { name: 'Azerbaijan', value: 9094.718 },
                    { name: 'Burundi', value: 9232.753 },
                    { name: 'Belgium', value: 10941.288 },
                    { name: 'Benin', value: 9509.798 },
                    { name: 'Burkina Faso', value: 15540.284 },
                    { name: 'Bangladesh', value: 151125.475 },
                    { name: 'Bulgaria', value: 7389.175 },
                    { name: 'The Bahamas', value: 66402.316 },
                    { name: 'Bosnia and Herzegovina', value: 3845.929 },
                    { name: 'Belarus', value: 9491.07 },
                    { name: 'Belize', value: 308.595 },
                    { name: 'Bermuda', value: 64.951 },
                    { name: 'Bolivia', value: 716.939 },
                    { name: 'Brazil', value: 195210.154 },
                    { name: 'Brunei', value: 27.223 },
                    { name: 'Bhutan', value: 716.939 },
                    { name: 'Botswana', value: 1969.341 },
                    { name: 'Central African Republic', value: 4349.921 },
                    { name: 'Canada', value: 34126.24 },
                    { name: 'Switzerland', value: 7830.534 },
                    { name: 'Chile', value: 17150.76 },
                    { name: 'China', value: 1359821.465 },
                    { name: 'Ivory Coast', value: 60508.978 },
                    { name: 'Cameroon', value: 20624.343 },
                    { name: 'Democratic Republic of the Congo', value: 62191.161 },
                    { name: 'Republic of the Congo', value: 3573.024 },
                    { name: 'Colombia', value: 46444.798 },
                    { name: 'Costa Rica', value: 4669.685 },
                    { name: 'Cuba', value: 11281.768 },
                    { name: 'Northern Cyprus', value: 1.468 },
                    { name: 'Cyprus', value: 1103.685 },
                    { name: 'Czech Republic', value: 10553.701 },
                    { name: 'Germany', value: 83017.404 },
                    { name: 'Djibouti', value: 834.036 },
                    { name: 'Denmark', value: 5550.959 },
                    { name: 'Dominican Republic', value: 10016.797 },
                    { name: 'Algeria', value: 37062.82 },
                    { name: 'Ecuador', value: 15001.072 },
                    { name: 'Egypt', value: 78075.705 },
                    { name: 'Eritrea', value: 5741.159 },
                    { name: 'Spain', value: 46182.038 },
                    { name: 'Estonia', value: 1298.533 },
                    { name: 'Ethiopia', value: 87095.281 },
                    { name: 'Finland', value: 5367.693 },
                    { name: 'Fiji', value: 860.559 },
                    { name: 'Falkland Islands', value: 49.581 },
                    { name: 'France', value: 63230.866 },
                    { name: 'Gabon', value: 1556.222 },
                    { name: 'United Kingdom', value: 62066.35 },
                    { name: 'Georgia', value: 4388.674 },
                    { name: 'Ghana', value: 24262.901 },
                    { name: 'Guinea', value: 10876.033 },
                    { name: 'Gambia', value: 1680.64 },
                    { name: 'Guinea Bissau', value: 10876.033 },
                    { name: 'Equatorial Guinea', value: 696.167 },
                    { name: 'Greece', value: 11109.999 },
                    { name: 'Greenland', value: 56.546 },
                    { name: 'Guatemala', value: 14341.576 },
                    { name: 'French Guiana', value: 231.169 },
                    { name: 'Guyana', value: 786.126 },
                    { name: 'Honduras', value: 7621.204 },
                    { name: 'Croatia', value: 4338.027 },
                    { name: 'Haiti', value: 9896.4 },
                    { name: 'Hungary', value: 10014.633 },
                    { name: 'Indonesia', value: 240676.485 },
                    { name: 'India', value: 1205624.648 },
                    { name: 'Ireland', value: 4467.561 },
                    { name: 'Iran', value: 240676.485 },
                    { name: 'Iraq', value: 30962.38 },
                    { name: 'Iceland', value: 318.042 },
                    { name: 'Israel', value: 7420.368 },
                    { name: 'Italy', value: 60508.978 },
                    { name: 'Jamaica', value: 2741.485 },
                    { name: 'Jordan', value: 6454.554 },
                    { name: 'Japan', value: 127352.833 },
                    { name: 'Kazakhstan', value: 15921.127 },
                    { name: 'Kenya', value: 40909.194 },
                    { name: 'Kyrgyzstan', value: 5334.223 },
                    { name: 'Cambodia', value: 14364.931 },
                    { name: 'South Korea', value: 51452.352 },
                    { name: 'Kosovo', value: 97.743 },
                    { name: 'Kuwait', value: 2991.58 },
                    { name: 'Laos', value: 6395.713 },
                    { name: 'Lebanon', value: 4341.092 },
                    { name: 'Liberia', value: 3957.99 },
                    { name: 'Libya', value: 6040.612 },
                    { name: 'Sri Lanka', value: 20758.779 },
                    { name: 'Lesotho', value: 2008.921 },
                    { name: 'Lithuania', value: 3068.457 },
                    { name: 'Luxembourg', value: 507.885 },
                    { name: 'Latvia', value: 2090.519 },
                    { name: 'Morocco', value: 31642.36 },
                    { name: 'Moldova', value: 103.619 },
                    { name: 'Madagascar', value: 21079.532 },
                    { name: 'Mexico', value: 117886.404 },
                    { name: 'Macedonia', value: 507.885 },
                    { name: 'Mali', value: 13985.961 },
                    { name: 'Myanmar', value: 51931.231 },
                    { name: 'Montenegro', value: 620.078 },
                    { name: 'Mongolia', value: 2712.738 },
                    { name: 'Mozambique', value: 23967.265 },
                    { name: 'Mauritania', value: 3609.42 },
                    { name: 'Malawi', value: 15013.694 },
                    { name: 'Malaysia', value: 28275.835 },
                    { name: 'Namibia', value: 2178.967 },
                    { name: 'New Caledonia', value: 246.379 },
                    { name: 'Niger', value: 15893.746 },
                    { name: 'Nigeria', value: 159707.78 },
                    { name: 'Nicaragua', value: 5822.209 },
                    { name: 'Netherlands', value: 16615.243 },
                    { name: 'Norway', value: 4891.251 },
                    { name: 'Nepal', value: 26846.016 },
                    { name: 'New Zealand', value: 4368.136 },
                    { name: 'Oman', value: 2802.768 },
                    { name: 'Pakistan', value: 173149.306 },
                    { name: 'Panama', value: 3678.128 },
                    { name: 'Peru', value: 29262.83 },
                    { name: 'Philippines', value: 93444.322 },
                    { name: 'Papua New Guinea', value: 6858.945 },
                    { name: 'Poland', value: 38198.754 },
                    { name: 'Puerto Rico', value: 3709.671 },
                    { name: 'North Korea', value: 1.468 },
                    { name: 'Portugal', value: 10589.792 },
                    { name: 'Paraguay', value: 6459.721 },
                    { name: 'Qatar', value: 1749.713 },
                    { name: 'Romania', value: 21861.476 },
                    { name: 'Russia', value: 21861.476 },
                    { name: 'Rwanda', value: 10836.732 },
                    { name: 'Western Sahara', value: 514.648 },
                    { name: 'Saudi Arabia', value: 27258.387 },
                    { name: 'Sudan', value: 35652.002 },
                    { name: 'South Sudan', value: 9940.929 },
                    { name: 'Senegal', value: 12950.564 },
                    { name: 'Solomon Islands', value: 526.447 },
                    { name: 'Sierra Leone', value: 5751.976 },
                    { name: 'El Salvador', value: 6218.195 },
                    { name: 'Somaliland', value: 9636.173 },
                    { name: 'Somalia', value: 9636.173 },
                    { name: 'Republic of Serbia', value: 3573.024 },
                    { name: 'Suriname', value: 524.96 },
                    { name: 'Slovakia', value: 5433.437 },
                    { name: 'Slovenia', value: 2054.232 },
                    { name: 'Sweden', value: 9382.297 },
                    { name: 'Swaziland', value: 1193.148 },
                    { name: 'Syria', value: 7830.534 },
                    { name: 'Chad', value: 11720.781 },
                    { name: 'Togo', value: 6306.014 },
                    { name: 'Thailand', value: 66402.316 },
                    { name: 'Tajikistan', value: 7627.326 },
                    { name: 'Turkmenistan', value: 5041.995 },
                    { name: 'East Timor', value: 10016.797 },
                    { name: 'Trinidad and Tobago', value: 1328.095 },
                    { name: 'Tunisia', value: 10631.83 },
                    { name: 'Turkey', value: 72137.546 },
                    { name: 'United Republic of Tanzania', value: 44973.33 },
                    { name: 'Uganda', value: 33987.213 },
                    { name: 'Ukraine', value: 46050.22 },
                    { name: 'Uruguay', value: 3371.982 },
                    { name: 'United States of America', value: 312247.116 },
                    { name: 'Uzbekistan', value: 27769.27 },
                    { name: 'Venezuela', value: 236.299 },
                    { name: 'Vietnam', value: 89047.397 },
                    { name: 'Vanuatu', value: 236.299 },
                    { name: 'West Bank', value: 13.565 },
                    { name: 'Yemen', value: 22763.008 },
                    { name: 'South Africa', value: 51452.352 },
                    { name: 'Zambia', value: 13216.985 },
                    { name: 'Zimbabwe', value: 13076.978 }
                ]
            }
        ]
    };
    this.worldMap.setOption(this.worldoption);
    window.onresize = () => {
        this.worldMap.resize()
    }
    window.addEventListener('resize', () => {
        this.worldMap.resize()
    })
    this.chgMap();
},

切换地图函数配置

注:切换的时候哪些属性想展示不展示可以自己去设置,我这里只设置了一些我想需要的

// 切换地图
chgMap() {
    var worldBox = document.querySelector(".miniWorldMap");
    var flag = true;
    var mid = this.chinaoption;
    var _this = this;
    worldBox.onclick = function () {
        if (flag) {
            _this.chinaMap.clear();//清空图表
            _this.chinaMap.setOption(_this.worldoption);//把中国地图切换为世界地图
            _this.worldMap.clear();//清空图表
            //把中国地图上的文字隐藏
            _this.chinaoption.series[0].label.normal.show = false;
            _this.chinaoption.series[0].itemStyle.emphasis.show = false;
            _this.chinaoption.series[0].label.emphasis.show = false;
            _this.chinaoption.tooltip.show = false;//隐藏提示悬浮框
            _this.chinaoption.series[0].itemStyle.emphasis.areaColor = '#01215c';
            _this.worldMap.setOption(_this.chinaoption);//把世界地图切换为中国地图
            _this.worldMap.off('click');
            flag = false;
        } else {
            _this.chinaMap.clear();
            _this.chinaoption.series[0].label.normal.show = true;//把中国地图上的文字重新展示
            _this.chinaoption.series[0].itemStyle.emphasis.show = true;
            _this.chinaoption.tooltip.show = true;//隐藏提示悬浮框
            _this.chinaoption.series[0].itemStyle.emphasis.areaColor = '#01215c';
            _this.chinaMap.setOption(_this.chinaoption);//把中国地图切换为中国地图
            _this.worldMap.clear();//清空图表
            _this.worldMap.setOption(_this.worldoption);//把世界地图切换为世界地图
            _this.worldMap.off('click');
            flag = true;
        }
    }
},

还有中国地图下钻二级页面这里不写了,可以直接去这篇文章里看二级页面部分juejin.cn/post/708553…

最后感谢大家阅读,如果喜欢可以点赞或留言💕~~~~,谢谢大家⭐️⭐️⭐️~~~

近期热门文章

专栏推荐

推荐一下自己的专栏,欢迎大家收藏关注😊~