ECharts之中国地图

1、main.js

let echarts = require('./assets/js/echarts.min.js');
let china = require('./assets/js/json/china.json');
echarts.echarts.registerMap('china', china);
Vue.prototype.$echarts = echarts.echarts;

2、组件实现

<template>
    <div class="zEcharts">
        <div class="map-container" id="myEcharts" ref="myEchart" style="height:100%;width:100%"></div>
    </div>
</template>
<script>
export default {
    name: 'zEcharts',
    data() {
        return {
            myEchart: '',
            optionChinaMap: {},//地图数据,等待接口数据
        }
    },
    props: {
        typeFlag: {
            type: Boolean,
            default: true
        }
    },
    mounted() {
        this.$nextTick(()=> {
            this.initEcharts();
        })
    },
    methods: {
        /**
         * 地图数据
        */
        randomData: function() {
            return Math.round(Math.random() * 1000);
        },
        /**
         * echarts实例话
        */
        initEcharts: function() {
            // echarts画图实例
            let chinaMapChart = null;
            // 画图区域
            chinaMapChart = this.$echarts.init(
                document.getElementById("myEcharts"),
                "macarons"
            );
            this.optionChinaMap = {
                tooltip: {
                trigger: "item"
                },
                legend: {
                    orient: "horizontal", //图例的排列方向
                    textStyle: { color: "#ccc" },
                    x: "left", //图例的位置
                    y: "-20000000000000",

                    // data: ["全国数据"]
                },

                visualMap: {
                    //颜色的设置  dataRange
                    textStyle: { color: "#ccc" },
                    x: "left",
                    y: "bottom",
                    splitList: [
                        // { start: 1500 },
                        // { start: 900, end: 1500 },
                        // { start: 310, end: 1000 },
                        // { start: 200, end: 300 },
                        // { start: 50, end: 200 },
                        { start: 0, end: 150000 }
                    ],
                    show: false,
                    // text:['高','低'],// 文本,默认为数值文本
                    color: ['rgb(50,88,124)']
                    // color: [
                    //     "#5475f5",
                    //     "#9feaa5",
                    //     "#3FA7FF",
                    //     "#66E0E3",
                    //     "#FFDC5E",
                    //     "#9fb5ea"
                    // ]
                },
                roamController: {//控制地图的上下左右放大缩小
                    show: true,
                    x: 'right',
                    mapTypeControl: {
                        'china': true
                    }
                },
                series: [
                {
                    name: "全国数据",
                    type: "map",
                    mapType: "china",
                    zoom: 1.1,//地图大小
                    roam: false, //是否开启鼠标缩放和平移漫游
                    itemStyle: {
                        //地图区域的多边形 图形样式
                        normal: {
                            //是图形在默认状态下的样式
                            label: {
                            show: true,
                            textStyle: { color: "rgb(249, 249, 249)" }//地图text样式
                            }
                        },
                        emphasis: {
                            //是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时
                            label: { show: true }
                        }
                    },
                    top: "100", //组件距离容器的距离
                    data: [
                        { name: "上海", value: this.randomData() },
                        { name: "北京", value: "100" },
                        { name: "天津", value: this.randomData() },
                        { name: "重庆", value: this.randomData() },
                        { name: "河北", value: this.randomData() },
                        { name: "河南", value: this.randomData() },
                        { name: "云南", value: this.randomData() },
                        { name: "辽宁", value: this.randomData() },
                        { name: "黑龙江", value: this.randomData() },
                        { name: "湖南", value: this.randomData() },
                        { name: "安徽", value: this.randomData() },
                        { name: "山东", value: this.randomData() },
                        { name: "新疆", value: this.randomData() },
                        { name: "江苏", value: this.randomData() },
                        { name: "浙江", value: this.randomData() },
                        { name: "江西", value: this.randomData() },
                        { name: "湖北", value: this.randomData() },
                        { name: "广西", value: this.randomData() },
                        { name: "甘肃", value: this.randomData() },
                        { name: "山西", value: this.randomData() },
                        { name: "内蒙古", value: this.randomData() },
                        { name: "陕西", value: this.randomData() },
                        { name: "吉林", value: this.randomData() },
                        { name: "福建", value: this.randomData() },
                        { name: "贵州", value: this.randomData() },
                        { name: "广东", value: this.randomData() },
                        { name: "青海", value: this.randomData() },
                        { name: "西藏", value: this.randomData() },
                        { name: "四川", value: this.randomData() },
                        { name: "宁夏", value: this.randomData() },
                        { name: "海南", value: this.randomData() },
                        { name: "台湾", value: this.randomData() },
                        { name: "香港", value: this.randomData() },
                        { name: "澳门", value: this.randomData() }
                    ]
                }
                ]
            };
            chinaMapChart.setOption(this.optionChinaMap, true);
        },
        
    }
}
</script>
<style lang="stylus" scoped>
.zEcharts
    width 100%
    height 100%
</style>

3、实现效果

posted @ 2021-01-27 14:04  #青橙#  阅读(16879)  评论(4编辑  收藏  举报