Используйте echarts, чтобы нарисовать карту Китая в vue

Vue.js ECharts
Используйте echarts, чтобы нарисовать карту Китая в vue

Используйте echarts, чтобы нарисовать карту Китая в vue

150 наборов демонстрационных адресов echartsРуан Цзяфэн 2013.git ee.IO/E chart100/#…

Обзор

Отображение карты Китая с большими данными на основе диаграмм в сочетании с настройкой API, стилем разработки, отслеживанием событий мыши и реализацией пользовательских событий, таких как переходы маршрутизации с параметрами.

I. Обзор

В реальном проекте есть большая вероятность, что будет много мест, где требуется отображение данных, таких как дисконтные диаграммы, гистограммы и т. д. Сегодня я представлю более крутое отображение больших данных на картах Китая в сочетании с бесплатным и сторонние плагины электронных карт с открытым исходным кодом, можно реализовать свои собственные стили, пользовательские подсказки.

2. Демонстрационный эффект

Шаги

Первый шаг, загрузите электронные карты

cnpm install echarts --save-dev

Второй шаг — внедрить его глобально в main.js.

Внедрение графиков в main.js

import echarts from 'echarts'

Vue.prototype.$echarts = echarts

полный код

<template>
  <div class="echarts">
    <div :style="{ height: '800px', width: '100%' }" ref="myEchart"></div>
  </div>
</template>
<script lang="ts">
import { Component, Vue, Provide } from "vue-property-decorator";
import { MyEchart } from "@/components/utils";
import echarts from "echarts";
import "../../../../node_modules/echarts/map/js/china.js"; // 引入中国地图数据
@Component({})
export default class ClassName extends Vue {
  private chart: any = null;
  private mounted() {
    this.chinaConfigure();
  }
  private beforeDestroy() {
    if (!this.chart) {
      return;
    }
    this.chart.dispose();
    this.chart = null;
  }
  private randomValue() {
    return Math.round(Math.random() * 1000);
  }
  private chinaConfigure() {
    var dataList = [
      { name: "南海诸岛", value: 0 },
      { name: "北京", value: this.randomValue() },
      { name: "天津", value: this.randomValue() },
      { name: "上海", value: this.randomValue() },
      { name: "重庆", value: this.randomValue() },
      { name: "河北", value: this.randomValue() },
      { name: "河南", value: this.randomValue() },
      { name: "云南", value: this.randomValue() },
      { name: "辽宁", value: this.randomValue() },
      { name: "黑龙江", value: this.randomValue() },
      { name: "湖南", value: this.randomValue() },
      { name: "安徽", value: this.randomValue() },
      { name: "山东", value: this.randomValue() },
      { name: "新疆", value: this.randomValue() },
      { name: "江苏", value: this.randomValue() },
      { name: "浙江", value: this.randomValue() },
      { name: "江西", value: this.randomValue() },
      { name: "湖北", value: this.randomValue() },
      { name: "广西", value: this.randomValue() },
      { name: "甘肃", value: this.randomValue() },
      { name: "山西", value: this.randomValue() },
      { name: "内蒙古", value: this.randomValue() },
      { name: "陕西", value: this.randomValue() },
      { name: "吉林", value: this.randomValue() },
      { name: "福建", value: this.randomValue() },
      { name: "贵州", value: this.randomValue() },
      { name: "广东", value: this.randomValue() },
      { name: "青海", value: this.randomValue() },
      { name: "西藏", value: this.randomValue() },
      { name: "四川", value: this.randomValue() },
      { name: "宁夏", value: this.randomValue() },
      { name: "海南", value: this.randomValue() },
      { name: "台湾", value: this.randomValue() },
      { name: "香港", value: this.randomValue() },
      { name: "澳门", value: this.randomValue() }
    ];
    let myChart = echarts.init(this.$refs.myEchart); //这里是为了获得容器所在位置
    window.onresize = myChart.resize;
    /* 添加点击事件 */
    myChart.on("click", (param: any) => {
      console.log(param);
      alert(param.data.name);
      // this.$router.push("/home/importData");
    });
    let option = {
      tooltip: {
        formatter: function(params: any, ticket: any, callback: Function) {
          if (!params.value) {
            params.value = "-";
          }
          return (
            params.seriesName + "<br />" + params.name + ":" + params.value
          );
        } //数据格式化
      },
      visualMap: {
        min: 0,
        max: 1500,
        left: "left",
        top: "bottom",
        text: ["高", "低"], //取值范围的文字
        inRange: {
          color: ["#e0ffff", "#006edd"] //取值范围的颜色
        },
        show: true //图注
      },
      geo: {
        map: "china",
        roam: false, //不开启缩放和平移
        zoom: 1.23, //视角缩放比例
        label: {
          normal: {
            show: true,
            fontSize: "10",
            color: "rgba(0,0,0,0.7)"
          }
        },
        itemStyle: {
          normal: {
            borderColor: "rgba(0, 0, 0, 0.2)"
          },
          emphasis: {
            areaColor: "#F3B329", //鼠标选择区域颜色
            shadowOffsetX: 0,
            shadowOffsetY: 0,
            shadowBlur: 20,
            borderWidth: 0,
            shadowColor: "rgba(0, 0, 0, 0.5)"
          }
        }
      },
      series: [
        {
          name: "信息量",
          type: "map",
          geoIndex: 0,
          data: dataList
        }
      ]
    };
    myChart.setOption(option);
  }
}
</script>

В этой статье используетсяmdniceнабор текста

❤100 наборов демонстрационных адресов электронной карты:Руан Цзяфэн 2013.git ee.IO/E chart100/#…