中国地图和世界地图

项目开发中:随着社会得发展,一些数据得可视化也随之增加,我为大家提供一套我在Vue项目开发中所利用Echarts地图开发的中国地图与世界地图源码呈上;


第一步:---下载

下载版本:低于5.x版本-5.x版本不携带有地图(cnpm install --save [email protected]

 查看下载是否拥有china(中国地图)、world(世界地图)

第二步:---配置

到man.js中引入Echarts以及它的china(中国地图)、world(世界地图)--此步完成后可在单组件直接进行使用地图

//echarts &  地图
// 引入echarts以及中国地图china.js
import * as echarts from 'echarts';
import '../node_modules/echarts/map/js/china';  //引入中国地图
import '../node_modules/echarts/map/js/world.js' // 引入世界地图
Vue.prototype.$echarts = echarts;

    * 我是通过vue的开发插件    地址:(开发插件)直接性的挂载到了vue上以便重复直接使用与整理维护

//引入自己弄的echarts
import Echarts from "./plugins/echarts"
import '../node_modules/echarts/map/js/china';  //引入中国地图
import '../node_modules/echarts/map/js/world.js' // 引入世界地图
Vue.use(Echarts)

第三步: 在src目录下创建plugins此文件放置echarts图形

 第四步: 此文件中用于放置echarts实例便于重复使用与便于后期维护(其它echarts图形也可如此)

 源码:

//引入echarts
import echarts from "echarts";

const install = function (Vue) {
    //Object对象方法  :  Es5提供:defineProperties
    Object.defineProperties(Vue.prototype, {//Vue.prototype挂在vue原型身上
        $charts: {
            get() {
                return {
                    //中国地图
                    chinaMap: function (id, data) {
                        // var dom = document.getElementById(id);
                        // var myChart = echarts.init(dom);
                        var myCharts = echarts.init(document.getElementById(id))
                        var option = {
                            //映射-颜色值
                            visualMap: [
                                {
                                    // 连续形  continuous
                                    // 分段型  piecewise
                                    type: "piecewise",   //分段
                                    //配置颜色区间值
                                    pieces: [
                                        {
                                            min: 0,
                                            max: 0,
                                            color: "#f6f6f6"
                                        },
                                        {
                                            min: 1,
                                            max: 10,
                                            color: "#fab27b"
                                        },
                                        {
                                            min: 10,
                                            max: 100,
                                            color: "#FE9E83"
                                        },
                                        {
                                            min: 100,
                                            max: 500,
                                            color: "#E55A4E"
                                        },
                                        {
                                            min: 500,
                                            max: 10000,
                                            color: "#4F070D"
                                        },
                                    ]
                                }

                            ],
                            //提示信息
                            tooltip: {
                                formatter(data) {
                                    return "<div><p>" + data.name + "-" + data.value + "人" + "</p></div>"
                                }
                            },
                            series: [{
                                name: '省',
                                type: 'map',  //配置图表类型
                                map: 'china',  //中国地图
                                roam: false,    //是否允许自动播放
                                zoom: 1.2,   //地图缩放比例
                                // aspectScale: 0.75,
                                label: {   //配置字体
                                    normal: {
                                        show: true,
                                        textStyle: {
                                            fontSize: 8,  //字体大小
                                            color: 'rgba(0,0,0,0.4)'
                                        }
                                    }
                                },
                                itemStyle: {
                                    normal: {   //配置地图样式
                                        areaColor: 'rgba(0,255,236,0)',
                                        borderColor: 'rgba(0,0,0,0.2)',
                                    },
                                    //配置阴影
                                    emphasis: {
                                        areaColor: '#d1c7b7',  //选中颜色
                                        shadowOffsetX: 0,
                                        shadowOffsetY: 0,
                                        shadowBlur: 20,   //模糊程度
                                        borderWidth: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },
                                data: data
                            }]
                        }

                        myCharts.setOption(option);
                    },

                    //世界地图
                    worldMap: function (id, data) {
                        var dom = document.getElementById(id);
                        var myChart = echarts.init(dom);

                        var option = {
                            //映射-颜色值
                            visualMap: [
                                {
                                    // 连续形  continuous
                                    // 分段型  piecewise
                                    type: "piecewise",   //分段
                                    //配置颜色区间值
                                    pieces: [
                                        {
                                            min: 0,
                                            max: 0,
                                            color: "#f6f6f6"
                                        },
                                        {
                                            min: 1,
                                            max: 100,
                                            color: "#fab27b"
                                        },
                                        {
                                            min: 100,
                                            max: 1000,
                                            color: "#faa755"
                                        },
                                        {
                                            min: 1000,
                                            max: 10000,
                                            color: "#f58220"
                                        },
                                        {
                                            min: 10000,
                                            max: 100000,
                                            color: "#f26522"
                                        },
                                        {
                                            min: 100000,
                                            max: 1000000, color: "#b4534b"
                                        },
                                        {
                                            min: 1000000,
                                            max: 10000000,
                                            color: "#8c531b"

                                        }
                                    ]
                                }
                            ],
                            //提示信息
                            tooltip: {
                                formatter(data) {
                                    return "<div><p>" + data.name + "-" + data.value + "人" + "</p></div>"
                                }
                            },
                            series: [{
                                name: '世界地图',
                                type: 'map',  //配置图表类型
                                map: 'world',  //中国地图
                                roam: false,    //是否允许自动播放
                                zoom: 1.2,   //地图缩放比例
                                // aspectScale: 0.75,
                                label: {   //配置字体
                                    normal: {
                                        show: false,  //控制名字是否显示
                                        textStyle: {
                                            fontSize: 8,  //字体大小
                                            color: 'rgba(0,0,0,0.4)'
                                        }
                                    }
                                },
                                itemStyle: {
                                    normal: {   //配置地图样式
                                        areaColor: 'rgba(0,255,236,0)',
                                        borderColor: 'rgba(0,0,0,0.2)',
                                    },
                                    //配置阴影
                                    emphasis: {
                                        areaColor: '#d1c7b7',  //选中颜色
                                        shadowOffsetX: 0,
                                        shadowOffsetY: 0,
                                        shadowBlur: 20,   //模糊程度
                                        borderWidth: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                                    }
                                },

                                data: data,
                                // nameMap:datad
                            }]
                        }
                        myChart.setOption(option);
                    }
                }
            }
        }
    })
}



export default install

 第五步: 在组件中进行调用传参

<template>
  <div>
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tab-pane label="中国地图" name="chinaMap">
        <div id="chinaMap"></div>
      </el-tab-pane>
      
      <el-tab-pane label="世界地图" name="worldMap">
        <div id="worldMap"></div>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

<script>
export default {
  data() {
    return {
      //中国地图数据
      TlisData: [
        {
          name: "北京",
          value: Math.round(Math.random() * 500),
        }
      ],

      //世界地图数据
      WorldData: [{ name: "Afghanistan", value: 28397.812 }],

      activeName: "chinaMap",
    };
  },
  mounted() {
    // this.$charts.line("line");
    // this.$charts.worldMap("worldMap");
    // console.log(this.$charts.line);

    //中国地图处理数据
    let chinaMapdata = [];
    for (let i = 0; i < this.TlisData.length; i++) {
      let temp = {
        name: this.TlisData[i].name,
        value: this.TlisData[i].value,
        itemStyle: {
          normal: {
            areaColor: this.setColor(this.TlisData[i].value),
          },
        },
      };
      chinaMapdata.push(temp);
    }
    this.$charts.chinaMap("chinaMap", chinaMapdata);

    //世界地图处理数据
    let worlds = [];
    for (let i = 0; i < this.WorldData.length; i++) {
      var temp = {
        name: this.WorldData[i].name,
        value: this.WorldData[i].value,
      };
      worlds.push(temp);
    }
    this.$charts.worldMap("worldMap", worlds);
  },
  methods: {
    //处理颜色方法
    setColor(value) {
      let currentColor = "";
      switch (true) {
        case value == 0:
          currentColor = "#fff";
          break;
        case value > 0 && value < 10:
          currentColor = "#FDFDCF";
          break;
        case value >= 10 && value < 100:
          currentColor = "#FE9E83";
          break;
        case value >= 100 && value < 500:
          currentColor = "#E55A4E";
          break;
        case value >= 500 && value < 10000:
          currentColor = "#4F070D";
          break;
      }
      return currentColor;
    },

    //点击tab切换打印
    handleClick(tab, event) {
      // console.log(tab, event);
    },
  },
};
</script>

<style>
#chinaMap {
  width: 400px;
  height: 400px;
}

#worldMap {
  width: 500px;
  height: 500px;
}
</style>

 效果图:(此献带有划入区域显示此区域数据的)

  1.中国地图

 

 2: 世界地图

欢迎大家补充不足,此源码献上,祝您技术进一步高升;

猜你喜欢

转载自blog.csdn.net/qq_63310300/article/details/124883478