echart地图


1、先下载需要用到的地图json文件,推荐下载网站https://datav.aliyun.com/portal/school/atlas/area_selector,如果需要自定义地图的可以去http://geojson.io/自定义。官网也有dome可以参考https://www.makeapie.com/editor.html?c=xHyqn_rQ6g。

2、在项目引入echarts和地图json文件

import * as echarts from 'echarts'
import china from '../assets/china.json'

3、向echarts导入地图文件

//第一个参数是命名,用于设置option.series里面的map属性
echarts.registerMap('china', china);

4、获取并init虚拟dom,设置option数据,放入series里的data,然后setOption就行了

            let myChart = echarts.init(this.$refs.map);
            let option = {
                visualMap: {
                    show:false,
                    left: 'right',
                    min: 500000,
                    max: 38000000,
                    inRange: {
                        color: ['#E3F1FC','#B4E3FA','#62C5F6','#2998E8' ]
                    },
                    text: ['High', 'Low'],
                    calculable: true
                },
                series: [
                    {
                        name: 'china',
                        type: 'map',
                        roam: true,
                        map: 'china',//这里是你导入echarts的json文件
                        layoutCenter: ['50%', '70%'],
                        layoutSize: '100%',
                        label: {//地图默认的文本属性
                            show: false,
                            color: '#2998E8',
                        },
                        select: {//选中的区域文本属性
                            label: {
                                color: "#2998E8"
                            },
                            itemStyle: {
                                color: "#3066ba"
                            }
                        },
                        emphasis: {//高亮的区域文本属性
                            itemStyle: {
                                areaColor: '#3066ba',
                            },
                            label: {
                                show: true,
                                textStyle: {
                                    color: '#2998E8'
                                }
                            }
                        },

                        zoom: 1.2,
                        textFixed: {
                            Alaska: [20, -20]
                        },
                        data: china.features.map(e => {
                            let num = Math.round(Math.random() * Math.random() * 100000000)
                            return { "name": e.properties.name, "value": num }
                        })
                    }
                ]
            }
            myChart.setOption(option);

 

5、效果图


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM