Detailed explanation of Javascript Echarts air quality map effect

Detailed explanation of Javascript Echarts air quality map effect

We need to first combine the air quality data with the map data:

Map data has the attribute name

insert image description here

Our different cities' air quality also has a name attribute. These two attributes are the same, both called name, so we can associate them:

var airData = [
      { name: 'Beijing', value: 39.92 },
      { name: 'Tianjin', value: 39.13 },
      { name: 'Shanghai', value: 31.22 },
      { name: 'Chongqing', value: 66 },
      { name: 'Hebei', value: 147 },
      { name: 'Henan', value: 113 },
      { name: 'Yunnan', value: 25.04 },
      { name: 'Liaoning', value: 50 },
      { name: 'Heilongjiang', value: 114 },
      { name: 'Hunan', value: 175 },
      { name: 'Anhui', value: 117 },
      { name: 'Shandong', value: 92 },
      { name: 'Xinjiang', value: 84 },
      { name: 'Jiangsu', value: 67 },
      { name: 'Zhejiang', value: 84 },
      { name: 'Jiangxi', value: 96 },
      { name: 'Hubei', value: 273 },
      { name: 'Guangxi', value: 59 },
      { name: 'Gansu', value: 99 },
      { name: 'Shanxi', value: 39 },
      { name: 'Inner Mongolia', value: 58 },
      { name: 'Shaanxi', value: 61 },
      { name: 'Jilin', value: 51 },
      { name: 'Fujian', value: 29 },
      { name: 'Guizhou', value: 71 },
      { name: 'Guangdong', value: 38 },
      { name: 'Qinghai', value: 57 },
      { name: 'Tibet', value: 24 },
      { name: 'Sichuan', value: 58 },
      { name: 'Ningxia', value: 52 },
      { name: 'Hainan', value: 54 },
      { name: 'Taiwan', value: 88 },
      { name: 'Hong Kong', value: 66 },
      { name: 'Macao', value: 77 },
      { name: 'South China Sea Islands', value: 55 }
    ]

Next we need to configure the air quality data into the series:

insert image description here

Finally, do some effect configuration:

insert image description here

insert image description here

Full code:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Map-Air Quality in Different Cities</title>
  <script src="./lib/echarts.js"></script>
  <script src="./lib/axios.js"></script>
</head>
<body>
  <div style="width: 600px; height: 400px;border: 1px solid lightblue;"></div>
  <script>
    var airData = [
      { name: 'Beijing', value: 39.92 },
      { name: 'Tianjin', value: 39.13 },
      { name: 'Shanghai', value: 31.22 },
      { name: 'Chongqing', value: 66 },
      { name: 'Hebei', value: 147 },
      { name: 'Henan', value: 113 },
      { name: 'Yunnan', value: 25.04 },
      { name: 'Liaoning', value: 50 },
      { name: 'Heilongjiang', value: 114 },
      { name: 'Hunan', value: 175 },
      { name: 'Anhui', value: 117 },
      { name: 'Shandong', value: 92 },
      { name: 'Xinjiang', value: 84 },
      { name: 'Jiangsu', value: 67 },
      { name: 'Zhejiang', value: 84 },
      { name: 'Jiangxi', value: 96 },
      { name: 'Hubei', value: 273 },
      { name: 'Guangxi', value: 59 },
      { name: 'Gansu', value: 99 },
      { name: 'Shanxi', value: 39 },
      { name: 'Inner Mongolia', value: 58 },
      { name: 'Shaanxi', value: 61 },
      { name: 'Jilin', value: 51 },
      { name: 'Fujian', value: 29 },
      { name: 'Guizhou', value: 71 },
      { name: 'Guangdong', value: 38 },
      { name: 'Qinghai', value: 57 },
      { name: 'Tibet', value: 24 },
      { name: 'Sichuan', value: 58 },
      { name: 'Ningxia', value: 52 },
      { name: 'Hainan', value: 54 },
      { name: 'Taiwan', value: 88 },
      { name: 'Hong Kong', value: 66 },
      { name: 'Macao', value: 77 },
      { name: 'South China Sea Islands', value: 55 }
    ]
    var myCharts = echarts.init(document.querySelector('div'))
    
    axios.get('./json/map/china.json').then(res => {
      console.log(res.data)
      echarts.registerMap('china', res.data)
      var option = {
        geo: {
          type: 'map',
          map: 'china',
          roam: true,
          label: {
            show: true
          }
        },
        series: [
          {
            data: airData, // air quality data geoIndex: 0, // associate air quality data with the 0th geo configuration type: 'map'
          }
        ],
        visualMap:
          min: 0, // minimum value max: 300, // maximum value inRange: {
            color: ['pink', 'blue'] // Control the lower left corner and map gradient color},
          calculable: true // Control the lower left slider}
      }
      myCharts.setOption(option)
    })
  </script>
</body>
</html>

Summarize

This article ends here. I hope it can be helpful to you. I also hope that you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • JavaScript data visualization: ECharts map making
  • An article to solve the echarts map carousel highlight
  • Python uses pyecharts to visualize map data
  • vue+echarts realizes the flow effect of China map (detailed steps)
  • vue+echarts+datav large screen data display and implementation of China map province, city and county drill-down function
  • Case study of introducing Chinese map in echarts in vue

<<:  21 MySQL standardization and optimization best practices!

>>:  Docker image creation Dockerfile and commit operations

Recommend

VMware Workstation 15 Pro Installation Guide (for Beginners)

01. VMware Workstation Pro 15 Download Download: ...

Implementing a simple timer in JavaScript

This article example shares the specific code of ...

Implementation steps for building a local web server on Centos8

1 Overview System centos8, use httpd to build a l...

10 Tips to Improve Website Usability

Whether it is a corporate website, a personal blo...

Chinese website user experience rankings

<br />User experience is increasingly valued...

Web form creation skills

In fact, the three tables above all have three ro...

jquery+springboot realizes file upload function

This article example shares the specific code of ...

How to set a dotted border in html

Use CSS styles and HTML tag elements In order to ...

JavaScript canvas to achieve colorful clock effect

Use canvas to write a colorful clock! 1. Title (1...

This article teaches you how to play with CSS border

Border Style The border-style property specifies ...

Docker5 full-featured harbor warehouse construction process

Harbor is an enterprise-level registry server for...

How to resize partitions in CentOS7

Yesterday, I helped someone install a system and ...

VSCode Development UNI-APP Configuration Tutorial and Plugin

Table of contents Written in front Precautions De...

About vue component switching, dynamic components, component caching

Table of contents 1. Component switching method M...