echarts绘制2D地图

本文介绍了如何在JavaScript项目中安装ECharts插件,引入世界地图的JSON数据,并展示了如何使用ECharts绘制地图以及配置地图上的数据标注。作者详细展示了地图初始化、选项配置和数据绑定的过程。

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

简介

此案例需要用到世界地图json数据,我把json文件放到我的资源中,有需要的自行下载。

 

安装插件

// 安装echats 
npm install echarts --save

项目中引用

1,引入安装的echarts插件

import * as echarts from 'echarts';

2,引入世界地图json文件

import WorldJSON from './world.json'

3,echarts 注册世界地图

//注册世界地图
echarts.registerMap('world', WorldJSON);

绘制地图代码

function draw(data) {
    var myChart = echarts.init(document.getElementById('map'));
    var option = {
        backgroundColor: '#001213',
        tooltip: {
            trigger: 'item',
            icon: 'query',
            // triggerOn: 'click',
            formatter: function (e, t, n) {
                let string = '';
                string += `<div style="padding:10px"><span style="padding-right:10px">${e.name}</span><span>(${e.value ? e.value : ''
                    }  台)</span> </div>`;
                let childList = e.data ? e.data.childs : [];
                childList.forEach((item) => {
                    string += `<div style="padding:0 10px 5px 10px;display:flex;justify-content: space-between;"><div style="padding-right:20px">${item.arg1}</div><div>${item.val1}台</div></div>`;
                });
                return string;
            },
            fontSize: '12px',
            backgroundColor: 'rgba(7,16,47,.6)', //设置背景图片 rgba格式
            color: 'black',
            borderWidth: '0', //边框宽度设置1
            borderColor: 'rgba(9,229,237,.2)', //设置边框颜色
            textStyle: {
                color: '#fff', //设置文字颜色
            },
            extraCssText: 'box-shadow: 0px 0px 20px inset #09E5ED',
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            // top:'10%',
            containLabel: true,
        },
        // visualMap: {
        //     min: 0,
        //     max: 1000,
        //     left: 0,
        //     bottom: 0,
        //     showLabel: !0,
        //     text: ['高', '低'],
        //     inRange: {
        //         color: ['#52f8fd', '#4bd3f9', '#62b7e7', '#7863fc']
        //     },
        //     pieces: [
        //         {
        //             gt: 4000,
        //             color: '#7863fc',
        //         },
        //         {
        //             gte: 3000,
        //             lte: 4000,
        //             color: '#6699f9',
        //         },
        //         {
        //             gte: 2000,
        //             lt: 3000,
        //             color: '#62b7e7',
        //         },
        //         {
        //             gt: 1000,
        //             lt: 2000,
        //             color: '#4bd3f9',
        //         },
        //         {
        //             gt: 0,
        //             lt: 1000,
        //             color: '#52f8fd',
        //         },
        //         {
        //             value: 0,
        //             color: '#52f8fd',
        //         },
        //     ],
        //     show: false,
        // },
        geo: {
            map: 'world',
            roam: true, // 是否可以缩放、拖拽
            scaleLimit: {
                min: 1,
                max: 2,
            },
            zoom: 1,
            label: {
                show: false,
                fontSize: '10',
                color: '#fff',
            },
            itemStyle: {
                // areaColor: "red",
                shadowColor: '#0d82dc',
                // shadowColor: 'rgba(255, 255, 255, 1)',
                shadowOffsetX: -2,
                shadowOffsetY: 2,
                shadowBlur: 10,
                borderWidth: 2,
                areaColor: '#004444',
                borderColor: '#00cccc',
            },
            emphasis: {
                itemStyle:{
                    areaColor: '#00cccc',
                },
                
                // shadowOffsetX: 0,
                // shadowOffsetY: 0,
                // borderWidth: 0,
                label:{
                    show:true,
                    fontSize: '10',
                    color: '#fff',
                }
            },
        },
        series: [
            {
                name: '整机销售台数 (台)',
                type: 'map',
                geoIndex: 0,
                data: [
                    { name: '广东', value: 100, selected: true }
                    // 其他数据...
                ]
            },
        ],
    };
    window.addEventListener('resize', () => {
        myChart.resize();
    });
    myChart.setOption(option);
}

效果图展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值