轻松上手echarts地图图表:10个实用案例教你轻松制作动态地图

2026-10-25 0 阅读

地图图表是一种非常直观的数据展示方式,能够将地理信息与数据结合,使信息更加生动和易于理解。echarts是一款强大的可视化库,其中地图图表功能尤其突出。本篇文章将为您提供10个实用案例,帮助您轻松制作动态地图。

案例一:中国地图展示

  1. 准备工作:首先,确保您已经引入了echarts库。
  2. HTML结构:创建一个div元素作为图表的容器。
    
    <div id="chinaMap" style="width: 600px;height:400px;"></div>
    
  3. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘chinaMap’));

var option = {

   title: {
       text: '中国地图展示'
   },
   tooltip: {
       trigger: 'item'
   },
   visualMap: {
       min: 0,
       max: 100,
       left: 'left',
       top: 'bottom',
       text: ['高','低'], // 文本,默认为数值文本
       calculable: true
   },
   series: [
       {
           name: '销量',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.setOption(option);


## 案例二:世界地图展示

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="worldMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘worldMap’));

var option = {

   title: {
       text: '世界地图展示'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '世界人口',
           type: 'map',
           mapType: 'world',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: 'Afghanistan',value: Math.round(Math.random() * 1000)},
               {name: 'Albania',value: Math.round(Math.random() * 1000)},
               // 其他国家数据...
           ]
       }
   ]

};

myChart.setOption(option);


## 案例三:中国省份地图展示

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="chinaProvinceMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘chinaProvinceMap’));

var option = {

   title: {
       text: '中国省份地图展示'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '省份人口',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.setOption(option);


## 案例四:动态地图数据更新

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="dynamicMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘dynamicMap’));

var option = {

   title: {
       text: '动态地图数据更新'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '动态数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

// 更新数据 setInterval(function () {

   option.series[0].data = [
       {name: '北京',value: Math.round(Math.random() * 1000)},
       {name: '天津',value: Math.round(Math.random() * 1000)},
       // 其他省份数据...
   ];
   myChart.setOption(option);

}, 1000);


## 案例五:地图交互

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="interactiveMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘interactiveMap’));

var option = {

   title: {
       text: '地图交互'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '交互数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.on(‘click’, function (params) {

   console.log(params.name);
   // 根据点击的省份执行相关操作

});

myChart.setOption(option);


## 案例六:地图动画效果

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="animatedMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘animatedMap’));

var option = {

   title: {
       text: '地图动画效果'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '动画数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

// 动画效果 myChart.showLoading(); setTimeout(function () {

   option.series[0].data = [
       {name: '北京',value: Math.round(Math.random() * 1000)},
       {name: '天津',value: Math.round(Math.random() * 1000)},
       // 其他省份数据...
   ];
   myChart.setOption(option);
   myChart.hideLoading();

}, 2000);


## 案例七:地图热力图

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="heatmapMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘heatmapMap’));

var option = {

   title: {
       text: '地图热力图'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '热力数据',
           type: 'heatmap',
           coordinateSystem: 'geo',
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.setOption(option);


## 案例八:地图点击事件

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="clickEventMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘clickEventMap’));

var option = {

   title: {
       text: '地图点击事件'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '点击事件数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.on(‘click’, function (params) {

   console.log(params.name);
   // 根据点击的省份执行相关操作

});

myChart.setOption(option);


## 案例九:地图缩放和旋转

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="zoomAndRotateMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘zoomAndRotateMap’));

var option = {

   title: {
       text: '地图缩放和旋转'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '缩放和旋转数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.setOption(option);

// 设置地图缩放和旋转 myChart.dispatchAction({

   type: 'geoRoamEnd',
   roam: true

});


## 案例十:地图数据可视化

1. **准备工作**:引入echarts库。
2. **HTML结构**:创建一个div元素作为图表的容器。
   ```html
   <div id="dataVisualizationMap" style="width: 600px;height:400px;"></div>
  1. JavaScript代码: “`javascript var myChart = echarts.init(document.getElementById(‘dataVisualizationMap’));

var option = {

   title: {
       text: '地图数据可视化'
   },
   tooltip: {
       trigger: 'item',
       formatter: '{b} <br/>{c}'
   },
   visualMap: {
       min: 0,
       max: 1000,
       left: 'left',
       top: 'bottom',
       text: ['高','低'],
       calculable: true
   },
   series: [
       {
           name: '数据可视化数据',
           type: 'map',
           mapType: 'china',
           roam: true,
           label: {
               show: true
           },
           data: [
               {name: '北京',value: Math.round(Math.random() * 1000)},
               {name: '天津',value: Math.round(Math.random() * 1000)},
               // 其他省份数据...
           ]
       }
   ]

};

myChart.setOption(option); “`

通过以上10个案例,您已经可以轻松制作出各种动态地图了。echarts地图图表功能非常强大,您可以根据自己的需求进行更多探索和尝试。祝您学习愉快!

分享到: