• vue2中使用echarts实现中国地图、在中国地图上标注坐标散点图


    1、 npm 安装 echarts4.9(全局引入不支持5.0) 

    npm install echarts@4.9.0

    2、 main.js中全局引入echarts: 

    //main.js
    
    import echarts from 'echarts'
    Vue.prototype.$echarts = echarts

    3、在页面中导入地图的 json 文件(可以使用echarts的文件,也可以使用本地的 json 文件)

    import chinamap from "echarts/map/json/china.json";
    
    //两个导入效果一样
    // import chinamap from '../assets/map/china.json';

     4、在页面中使用

    <template>
      <div id="app">
        <div id="echart_china" ref="echart_china"></div>
      </div>
    </template>
    
    <script>
    import chinamap from "echarts/map/json/china.json";
    export default {
      data() {
        return {
          myChart: null,
        };
      },
      mounted() {
        // 1. 创建一个 ECharts 实例,返回 echartsInstance,不能在单个容器上初始化多个 ECharts 实例
        this.myChart = this.$echarts.init(this.$refs.echart_china);
    
        this.init();
      },
      methods: {
        /*
          显示中国地图
        */
        init() {
          // 2. 注册可用的地图,只在 geo 组件或者map图表类型中使用
          this.$echarts.registerMap("china", chinamap); //用导入的json文件注册一个name:china的地图组件
    
          // 3. 设置图表 option
          var option = {
            geo: {
              type: "map",
              map: "china", //使用 registerMap 注册的地图名称
            },
          };
          console.log("option1:", option);
    
          // 只显示一个地图的时候,用option,option2都可以。如果要在地图上加散点图,用 option 
          var option2 = {
            series: [
              {
                type: "map",
                map: "china", //使用 registerMap 注册的地图名称
              },
            ],
          };
          console.log("option2:", option2);
    
          // 4. 显示地图
          this.myChart.setOption(option); // 用 option 和 option2 效果一样
        },
      },
    };
    </script>
    
    <style scoped>
    #echart_china {
      width: 100%;
      height: 500px;
      background-color: #f1f3f4;
    }
    </style>

    名字引用关系如图: 

     实现效果如下:


     5、在中国地图上显示散点图(在geo地理坐标系中显示散点图)

    <template>
      <div id="app">
        <div id="echart_china" ref="echart_china"></div>
      </div>
    </template>
    
    <script>
    import chinamap from "echarts/map/json/china.json";
    export default {
      data() {
        return {
          myChart: null,
        };
      },
      mounted() {
        // 1. 创建一个 ECharts 实例,返回 echartsInstance,不能在单个容器上初始化多个 ECharts 实例
        this.myChart = this.$echarts.init(this.$refs.echart_china);
    
        this.showScatterInGeo();
      },
      methods: {
        /*
          geo:地理坐标系组件( https://echarts.apache.org/zh/option.html#geo)
          地理坐标系组件用于地图的绘制,支持在地理坐标系上绘制散点图
        */
        showScatterInGeo() {
          // 2. 注册可用的地图,只在 geo 组件或者map图表类型中使用
          this.$echarts.registerMap("china", chinamap); //用导入的json文件注册一个name:china的地图组件
          // 3. 设置图表 option
          var option = {
            geo: {
              type: "map",
              map: "china",
              label: {
                // label 设置文本标签的显示格式,去掉不影响显示地图
                normal: {
                  color: "#000000",
                  show: true, //显示省份名称
                },
              },
            },
            series: [
              {
                name: "在地图中显示散点图",
                type: "scatter",
                coordinateSystem: "geo", //设置坐标系为 geo
                data: [
                  //这里放标注点的坐标[{name: "北京",value: [116.46, 39.92]}]
                  { name: "北京", value: [116.41995, 40.18994] },
                  { name: "郑州", value: [113.665412, 34.757975] },
                  { name: "天津", value: [117.205126, 39.034933] },
                  { name: "昆明", value: [102.81844, 24.906231] },
                  { name: "广州", value: [113.26453, 23.155008] },
                ],
              },
            ],
          };
          // 4. myChart.setOption
          this.myChart.setOption(option);
        },
      },
    };
    </script>
    
    <style scoped>
    #echart_china {
      width: 100%;
      height: 500px;
      background-color: #f1f3f4;
    }
    </style>

    效果如下:

  • 相关阅读:
    再论 ASP.NET 中获取客户端IP地址
    修改MariaDB 路径
    CentOS MariaDB 安装和配置
    asp.net core 使用protobuf
    Xamarin绑定微信SDK 实现分享功能
    iOS中转义后的html标签如何还原
    MvvmCross框架在XamarinForms中的使用入门
    Xamarin.Form 初学 之 服务引用-WCF服务引用
    程序员求职面试三部曲之三:快速适应新的工作环境
    程序员求职面试三部曲之二:提高面试的成功率
  • 原文地址:https://www.cnblogs.com/sunshine233/p/16140522.html
Copyright © 2020-2023  润新知