echarts实现全国地图和省份的切换跳转

<html>

<head>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <!-- 引入js -->
    <script type="text/javascript" src="js/echarts.min.js"></script>
    <script type="text/javascript" src="js/jquery.js"></script>

</head>

<body>
    <div>
        <div>
            <!-- 设置一个区域 用来存放我们的地图-->
            <div class="box">
                <div id="main" style="width: 100%;height:100%;"></div>
            </div>
        </div>
    </div>
</body>
<script>
    //获取到需要添加地图的位置
    var myChart = echarts.init(document.getElementById('main'));
    //1.中国地图
    var chinaMap = "json/中国地图.json";
    //2.台湾省地图
    var taiWanMap = "json/台湾省.json";
    //3.海南省地图
    var haiNanMap = "json/海南省.json";
    //4.安徽省地图
    var anHuiMap = "json/安徽省.json";
    //5.江西省地图
    var jiangXiMap = "json/江西省.json";
    //6.湖南省地图
    var huNanMap = "json/湖南省.json";
    //7.云南省地图
    var yunNanMap = "json/云南省.json";
    //8.贵州省地图
    var guiZhouMap = "json/贵州省.json";
    //9.广东省地图
    var guangDongMap = "json/广东省.json";
    //10.福建省地图
    var fuJianMap = "json/福建省.json";
    //11.浙江省地图
    var zheJiangMap = "json/浙江省.json";
    //12.江苏省地图
    var jiangSuMap = "json/江苏省.json";
    //13.四川省地图
    var siChuanMap = "json/四川省.json";
    //14.重庆市市地图
    var chongQingMap = "json/重庆市.json";
    //15.湖北省地图
    var huBeiMap = "json/湖北省.json";
    //16.河南省地图
    var heNanMap = "json/河南省.json";
    //17.山东省地图
    var shanDongMap = "json/山东省.json";
    //18.吉林省地图
    var jiLinMap = "json/吉林省.json";
    //19.辽宁省地图
    var liaoNingMap = "json/辽宁省.json";
    //20.天津市市地图
    var tianJinMap = "json/天津市.json";
    //21.北京市市地图
    var beiJingMap = "json/北京市.json";
    //22.河北省地图
    var heBeiMap = "json/河北省.json";
    //23.山西省地图
    var shanXiMap = "json/山西省.json";
    //24.陕西省地图
    var shanXi2Map = "json/陕西省.json";
    //25.宁夏回族自治区省地图
    var ningXiaMap = "json/宁夏回族自治区.json";
    //26.青海省地图
    var qingHaiMap = "json/青海省.json";
    //27.西藏自治区地图
    var xiZangMap = "json/西藏自治区.json";
    //28.黑龙江省地图
    var heiLongJiangMap = "json/黑龙江省.json";
    //29.内蒙古自治区地图
    var neimengGuMap = "json/内蒙古自治区.json";
    //30.甘肃省地图
    var ganSuMap = "json/甘肃省.json";
    //31.新疆维吾尔自治区省地图
    var xinJiangMap = "json/新疆维吾尔自治区.json";
    //32.广西壮族自治区地图
    var guangxiMap = "json/广西壮族自治区.json";
    //设置初始地图
    var mapname = chinaMap;
    //设置省份的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: "内蒙古自治区",
            json: neimengGuMap,
        },
        {
            name: "甘肃省",
            json: ganSuMap,
        },
        {
            name: "新疆维吾尔自治区",
            json: xinJiangMap,
        },
        {
            name: "广西壮族自治区",
            json: guangxiMap,
        },
    ];
    var provinceData = {
        '台湾省': Math.random() * 100,
        '海南省': Math.random() * 100,
        '安徽省': Math.random() * 100,
        '江西省': Math.random() * 100,
        '湖南省': Math.random() * 100,
        '云南省': Math.random() * 100,
        '贵州省': Math.random() * 100,
        '广东省': Math.random() * 100,
        '福建省': Math.random() * 100,
        '浙江省': Math.random() * 100,
        '江苏省': Math.random() * 100,
        '四川省': Math.random() * 100,
        '重庆市': Math.random() * 100,
        '湖北省': Math.random() * 100,
        '河南省': Math.random() * 100,
        '山东省': Math.random() * 100,
        '吉林省': Math.random() * 100,
        '辽宁省': Math.random() * 100,
        '天津市': Math.random() * 100,
        '北京市': Math.random() * 100,
        '河北省': Math.random() * 100,
        '山西省': Math.random() * 100,
        '陕西省': Math.random() * 100,
        '宁夏回族自治区': Math.random() * 100,
        '青海省': Math.random() * 100,
        '西藏自治区': Math.random() * 100,
        '黑龙江省': Math.random() * 100,
        '内蒙古自治区': Math.random() * 100,
        '甘肃省': Math.random() * 100,
        '新疆维吾尔自治区': Math.random() * 100,
        '广西壮族自治区': Math.random() * 100,
    };
    var citydata = {
        '巴中市': 32,
        '达州市': 22,
        '广元市': 10
    }
    //加载时的文字提示
    myChart.showLoading({ text: '正在加载数据' });  //增加等待提示

    //点击事件
    myChart.on('click', function (e) {
        var clickedName = e.name;
        var clickedMap = mapJson.find(item => item.name === clickedName);
        if (clickedMap) {
            mapname = clickedMap.json;
            mapInit();
        }
        //添加一个返回按键
        $('<div class="back"><button type="button">返回</button></div>').appendTo($('#main'));
        //给返回按键设置样式
        $('.back').css({
            position: 'absolute',//绝对地位
            left: '20px',//设置位置
            top: '20px',//设置位置
            color: 'pink',//设置字体颜色
            'font-size': '20px',//设置字体大小
            cursor: 'pointer',//变小手
        });
        //设置返回按钮的点击事件
        $('.back').click(function () {
            //地图重新设置为中国地图
            mapname = chinaMap;
            //隐藏按钮
            $('.back').css({
                opacity: 0,
            });
            //绘制地图
            mapInit();
            //重新开始定时播放
            timer = setInterval(function () {
                //调用定时播放代码
                timing()
            }, 1500);
        });
    });

    //设置初始化时间
    setTimeout(function () {
        mapInit();
    }, 500);

    //创建地图
    var mapInit = () => {
        //调用中国地图(同步)
        $.getJSON(mapname, function (geoJson) {
            //调用我们通过json对象注册的地图
            echarts.registerMap('China', geoJson);
            //文件加载的动画
            myChart.hideLoading();
            if (mapname === chinaMap) {
                //地图开始
                option = {
                    //设置背景颜色
                    backgroundColor: 'white',
                    series: [{
                        name: '数据',
                        type: 'map',
                        map: 'China',
                        data: Object.keys(provinceData).map(function (key) {
                            return {
                                name: key,
                                value: provinceData[key],
                            };
                        }),
                        label: {
                            show: false,
                        },
                        emphasis: {
                            label: {
                                show: true,
                            },
                        },
                    }],
                    tooltip: {
                        trigger: 'item',
                        formatter: '{b}<br/>{c} (种菌菇)'
                    },
                    visualMap: {
                        min: 10,
                        max: 100,
                        text: ['High', 'Low'],
                        realtime: false,
                        calculable: true,
                        inRange: {
                            color: ['orange', 'purple', 'red']
                        }
                    },
                };
            }else{
                option = {
                    //设置背景颜色
                    backgroundColor: 'white',
                    series: [{
                        name: '数据',
                        type: 'map',
                        map: 'China',
                        data: Object.keys(citydata).map(function (key) {
                            return {
                                name: key,
                                value: citydata[key],
                            };
                        }),
                        label: {
                            show: false,
                        },
                        emphasis: {
                            label: {
                                show: true,
                            },
                        },
                    }],
                    tooltip: {
                        trigger: 'item',
                        formatter: '{b}<br/>{c} (种菌菇)'
                    },
                    visualMap: {
                        min: 10,
                        max: 100,
                        text: ['High', 'Low'],
                        realtime: false,
                        calculable: true,
                        inRange: {
                            color: ['orange', 'purple', 'red']
                        }
                    },
                };

            };
            myChart.setOption(option);
        });
    };
</script>

</html>

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值