Vue+Echarts实现中国疫情地图

效果:

源码:

<template>
  <div>
    <div ref = "mapbox" style = "height:800px;width:100%"></div>
  </div>
</template>

<script>
import 'echarts/map/js/china.js'
import jsonp from 'jsonp'

const option = {
    title:{
        text:"陶然同学",
        lik:"https://blog.csdn.net/weixin_45481821?spm=1010.2135.3001.5343",
        subtext:"关注我",
        sublink:"https://blog.csdn.net/weixin_45481821?spm=1010.2135.3001.5343"
    },
    series:[{
        name:'确诊人数',
        type:'map',     //类型地图
        map:'china',    //告诉echarts渲染哪个地图
        label:{
            show:true,              //是否显示标签
            color:'red',            //标签颜色
            fontSize:10             //标签大小
        },
        itemStyle:{
            areaColor:'yellow',         //地图眼色
            borderColor:'red'           //地图边框眼色
        },
        emphasis:{                      //鼠标移入效果
            label:{                     //标签
                color:'blue',
                fontSize:12,
            },
            itemStyle:{                 //地图样式
                areaColor:'red'
            }
        },
        data:[],            //用来展示后台给的数据
        roam:true,          //开启缩放和拖拽
        zoom:1.2            //控制地图的缩放和放大
    }],
    visualMap:[{                //视觉映射组件(条件筛选)
        type:'piecewise',       //类型分为分段型和连续型
        show:true,              //是否显示 默认显示
        splitNumber:5,          //分段数量
        pieces:[                //自定义每一段组件范围
            {min:10000},
            {min:1000,max:9999},
            {min:100,max:999},
            {min:10,max:99},
            {min:1,max:9}
        ],  
        //align:'right'             //指定组件中图形(比如小方块)和文字的摆放关系
        //orient:'horizontal',      //如何放置 visualMap 组件,水平('horizontal')或者竖直('vertical')。
        //left:100,                 //visualMap 组件离容器左侧的距离。
        //showLabel:false,          //是否显示每项的文本标签
        inRange:{
            symbol:'rect',          //组件类型
            color:['#ffc0b1','#9c0505']     //组件颜色(根据数量不同 颜色深浅也不同)
        },
        itemWith:20,                //图形的宽度,即每个小块的宽度。
        itemHeight:10               //图形的高度,即每个小块的高度。
    }],
    tooltip:{
        trigger:'item'
    },
    toolbox: {
        show: true,
        orient: 'vertical',
        left: 'right',
        top: 'center',
        feature: {
          dataView: { readOnly: false },
          restore: {},
          saveAsImage: {}
        }
    },
}

export default {
    mounted(){
        this.getData()
        this.mychart = this.$echarts.init(this.$refs.mapbox)
        this.mychart.setOption(option)
    },
    methods:{
        getData(){
            jsonp(`https://interface.sina.cn/news/wap/fymap2020_data.d.json`,{},(err,data) =>{
                if(!err){
                    console.log(data)
                    let list = data.data.list.map(item => ({name:item.name,value:item.value}))
                    option.series[0].data = list
                    this.mychart.setOption(option)
                }
            })
        }
    }
}
</script>

<style>

</style>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陶然同学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值