生成毕业同学去向数据地图,鼠标经过某个省是变色而且显示相关的信息(比如那些人在这个省)

本文介绍了一个使用ECharts实现的地图数据展示案例,通过HTML和JavaScript代码实现了不同省份的数据展示及鼠标悬停显示详细信息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果

在这里插入图片描述

html代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
            color: #333333;
        }

        body {
            font-family: "微软雅黑";
        }

        #charts {
            width: 800px;
            height: 600px;
            margin: 0 auto;
        }
    </style>
</head>

<body>
    <div id="charts"></div>
</body>

<script src="echarts-all2.js"></script>
<script>
    var detail = [
        { ren: "长沙:xxx、xxx、xxx" },
        { ren: "西安:xxx" },
        { ren: "昆明:xxx、xxx、xxx、xxx、 <br> &nbsp;  &nbsp; &nbsp;  &nbsp; &nbsp; xxx、xxx、xxx、xxx、 <br> &nbsp;  &nbsp; &nbsp;  &nbsp; &nbsp; xxx、xxx、xxx、<br> &nbsp;  &nbsp; &nbsp;  &nbsp; &nbsp; xxx、  xxx、xxx <br> 威信:xxx <br> 昭通:xxx <br> 曲靖:xxx" },
        { ren: "毕节赫章:xxx  <br> 贵阳南明:xxx" },
        { ren: "&nbsp; &nbsp; &nbsp;杭州:&nbsp; &nbsp;  &nbsp;xxx  <br> 衢(qú)州:xxx" },
        { ren: "洛阳:xxx" },
        { ren: "上海闵行:xxx  <br> 上海浦东:xxx  <br>上海杨浦:xxx、xxx" },
        { ren: "深圳:xxx、xxx、xxx" },
        { ren: "成都:&nbsp;  &nbsp; xxx、xxx、xxx、  <br> &nbsp;  &nbsp; &nbsp;  &nbsp; &nbsp;  &nbsp; &nbsp; xxx、xxx <br> 攀枝花:xxx" },
        { ren: "天津:xxx" },
        { ren: "重庆:xxx、xxx" },

    ];
    var mycharts = echarts.init(document.getElementById('charts'))
    option = {
        dataRange: {
            show: false,
            x: 'left',
            y: 'bottom',
            splitList: [
                { start: 5, end: 5, color: 'orange' },//当值为5时,区域背景
                { start: 10, end: 10, color: '#ff6300' },//当值为10时,区域背景
                { start: 15, end: 15, color: '#ccc' },//当值为15时,区域背景
            ],
        },
        tooltip: {
            alwaysShowContent: true,
            enterable: true,
            formatter: function (params) {
                var name = params.name;
                var goaltext = "none";
                if (name == "湖南") {
                    goaltext = detail[0].ren;
                } else if (name == "陕西") {
                    goaltext = detail[1].ren;
                }
                else if (name == "云南") {
                    goaltext = detail[2].ren;
                }
                else if (name == "贵州") {
                    goaltext = detail[3].ren;
                }
                else if (name == "浙江") {
                    goaltext = detail[4].ren;
                }
                else if (name == "河南") {
                    goaltext = detail[5].ren;
                }
                else if (name == "上海") {
                    goaltext = detail[6].ren;
                }
                else if (name == "广东") {
                    goaltext = detail[7].ren;
                }
                else if (name == "四川") {
                    goaltext = detail[8].ren;
                }
                else if (name == "天津") {
                    goaltext = detail[9].ren;
                }
                else if (name == "重庆") {
                    goaltext = detail[10].ren;
                }
                else {
                    goaltext = "none";
                }

                return goaltext;
            }
        },
        series: [
            {
                name: '',
                type: 'map',
                mapType: 'china',
                //hoverable: false,
                roam: false,
                itemStyle: {
                    normal: { label: { show: true } },
                    emphasis: { label: { show: false } }
                },
                data: [],
            }
        ],
        animation: false

    };
    var ini_data = [];//初始化省份数组



    /*要那些省就在这儿改*/
    var provArr = ['贵州', '河南', '云南', '浙江', '上海', '湖南', '广东', '四川', '天津', '重庆', '陕西'];//获取的省份,有可能是从后台获取


    //正则省份,将省与市的字眼去掉,框架不识别
    for (var i = 0; i < provArr.length; i++) {
        var str = provArr[i];
        var re = /省|市/g;  //全局匹配
        var str2 = { name: str.replace(re, ''), value: 5 };//拼接对象数组
        ini_data.push(str2);
    }
    option.series[0].data = ini_data;//将拼接好的数组赋给参数集合
    mycharts.setOption(option);//跟新图表
    //鼠标滑过事件
    var testStr = ',' + provArr.join(",") + ",";
    mycharts.on('hover', function (param) {
        // console.log(param);
        if (testStr.indexOf("," + param.name + ",") != -1) {
            return false;
        } else {
            param.value = 15;
            mycharts.setOption(option);
        }
    });
    //初始化省颜色
    function ini_province() {
        var ini_len = option.series[0].data.length;
        for (var i = 0; i < ini_len; i++) {
            //初始化颜色
            option.series[0].data[i].value = 5;
            mycharts.setOption(option);
        }
    }
</script>

</html>

用到的js代码

链接:https://pan.baidu.com/s/1vAX5gHP0n90xxfttOx-MSA

提取码:mdvs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中南自动化学院至渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值