当前位置:首页 > 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实例,并配置地图选项。

Vue实现疫情地图

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>

响应式调整

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

Vue实现疫情地图

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实例,避免内存泄漏。

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

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

相关文章

vue地图轨迹实现

vue地图轨迹实现

实现Vue地图轨迹的基本步骤 安装依赖库,如vue2-google-maps或leaflet,根据项目需求选择合适的库。若使用Google Maps,需在项目中引入API密钥。 在Vue组件中引入地…

如何在react中嵌入高德地图

如何在react中嵌入高德地图

安装高德地图 JavaScript API 在项目中引入高德地图的 JavaScript API。可以通过在 public/index.html 中添加脚本标签实现: <script src=…

js实现手绘地图

js实现手绘地图

实现手绘地图的JavaScript方法 使用Canvas绘制基础地图 Canvas API适合绘制手绘风格的图形。通过设置线条的粗糙度和填充颜色,可以模拟手绘效果。 const canvas = d…

uniapp 3D地图

uniapp 3D地图

在 uniapp 中实现 3D 地图功能,可以通过以下方法实现: 使用高德地图或百度地图的 JavaScript API 高德地图和百度地图提供了丰富的 JavaScript API,支持 3D 地…

vue实现接口地图

vue实现接口地图

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

css地图制作

css地图制作

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地图轮廓、区域或路径。以下是几种常见方法: 使用SVG与CSS结合 SVG(可缩放矢量图形)更适合绘制复杂地图,但可…