当前位置:首页 > VUE

Vue实现疫情地图

2026-03-28 18:08:25VUE

Vue实现疫情地图的基本步骤

安装必要的依赖库,如axios用于数据请求,echartsleaflet用于地图渲染。

npm install axios echarts --save

获取疫情数据

通过公开的疫情数据API获取最新数据,例如使用腾讯或丁香园的接口。使用axios发起GET请求。

import axios from 'axios';

async function fetchEpidemicData() {
  try {
    const response = await axios.get('https://api.tianapi.com/ncov/index?key=YOUR_API_KEY');
    return response.data.result;
  } catch (error) {
    console.error('Error fetching data:', error);
    return null;
  }
}

初始化ECharts地图

在Vue组件的mounted钩子中初始化ECharts实例,并配置地图选项。

import * as echarts from 'echarts';

export default {
  data() {
    return {
      chart: null,
      epidemicData: []
    };
  },
  async mounted() {
    this.epidemicData = await fetchEpidemicData();
    this.initChart();
  },
  methods: {
    initChart() {
      this.chart = echarts.init(this.$refs.mapContainer);
      const option = {
        title: {
          text: '全国疫情地图'
        },
        tooltip: {
          trigger: 'item',
          formatter: '{b}: {c}例'
        },
        visualMap: {
          min: 0,
          max: 1000,
          text: ['High', 'Low'],
          realtime: false,
          calculable: true,
          inRange: {
            color: ['#f6efa6', '#d94e5d']
          }
        },
        series: [{
          name: '确诊人数',
          type: 'map',
          map: 'china',
          data: this.epidemicData,
          label: {
            show: true
          }
        }]
      };
      this.chart.setOption(option);
    }
  }
};

模板部分

在Vue模板中添加一个容器用于渲染地图。

<template>
  <div ref="mapContainer" style="width: 800px; height: 600px;"></div>
</template>

响应式调整

监听窗口大小变化,动态调整图表尺寸。

mounted() {
  window.addEventListener('resize', this.handleResize);
},
methods: {
  handleResize() {
    if (this.chart) {
      this.chart.resize();
    }
  }
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize);
}

数据更新

定期或手动刷新数据,更新地图显示。

methods: {
  async refreshData() {
    this.epidemicData = await fetchEpidemicData();
    this.chart.setOption({
      series: [{
        data: this.epidemicData
      }]
    });
  }
}

注意事项

确保在组件销毁时释放ECharts实例,避免内存泄漏。

Vue实现疫情地图

beforeDestroy() {
  if (this.chart) {
    this.chart.dispose();
  }
}

标签: 疫情地图
分享给朋友:

相关文章

css地图制作教程

css地图制作教程

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地理图形或交互式元素。以下是几种常见方法: 基础形状绘制 通过CSS的border、box-shadow和transf…

css制作地图

css制作地图

使用CSS制作地图的基本方法 通过CSS的伪元素、边框、阴影等属性可以创建简单的地图轮廓或区块效果。例如用div和border模拟地图边界: .map-container { width: 30…

jquery 地图

jquery 地图

jQuery 地图插件推荐 jQuery 地图插件通常用于在网页中集成交互式地图功能。以下是几种常用的 jQuery 地图插件及其特点: 1. jQuery Vector Maps (jVector…

vue实现接口地图

vue实现接口地图

Vue 中实现地图接口的集成方法 安装地图 SDK 或库 根据需求选择高德、百度或腾讯地图的 JavaScript SDK。通过 npm 或直接引入脚本方式安装,例如高德地图: npm instal…

vue地图轨迹实现

vue地图轨迹实现

实现Vue地图轨迹的基本步骤 安装地图库,如高德地图或百度地图的Vue组件。以高德地图为例,通过npm安装: npm install @amap/amap-jsapi-loader --save 在…

css制作地图

css制作地图

CSS 制作地图的基本方法 使用CSS制作地图通常需要结合HTML和CSS的定位、形状绘制技术。以下是一些关键方法: 使用绝对定位和边框绘制简单形状 通过设置元素的position: absolut…