ECharts地图使用教程

ECharts地图使用教程


前言

前阵子工作中需要的做个地图鼠标触摸的时候展示对应的信息,点击的时候跳转下一级.在对比了高德地图和echarts地图之后果断选择echarts地图,因为echarts做出来的3D效果不错,接下来开始撸代码.


效果图

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
是不是也很炫酷哈

一、Echarts?

众所周知Echarts是一个基于 JavaScript 的开源可视化图表库,社区更是有很多好看且大气的可视化图表.

Echarts官方地址

二、使用步骤

1.获取ECharts

从npm获取

npm install echarts

或者是使用地址链接,建议大家使用npm下载.下面代码为了方便大家使用是我单独写的demo,使用的地址链接.粘贴下来就可以直接使用.

<script src="https://registry.npmmirror.com/echarts/5.4.3/files/dist/echarts.min.js"></script>
<script src="https://registry.npmmirror.com/echarts-gl/2/files/dist/echarts-gl.min.js"></script>

2.完整代码

话不多说直接上代码.

<!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>河南地图</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
    <script src="https://registry.npmmirror.com/echarts/5.4.3/files/dist/echarts.min.js"></script>
    <script src="https://registry.npmmirror.com/echarts-gl/2/files/dist/echarts-gl.min.js"></script>

    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  
  </head>
  <body>
    <div id="app">
      <div id="map" style="height: 500px; width: 1000px"></div>
   
    </div>

    <script>
      var vm = new Vue({
        el: '#app',
        data() {
          return {
            name: '河南省',
            dataJson: '',
          };
        },
        async created() {
          console.log('执行');
          const { data } = await axios.get('./geojson.json');
          console.log('data', JSON.stringify(data));
          this.dataJson = JSON.stringify(data);
        },
        mounted() {
          //   this.test();
          setTimeout(() => {
            const { features } = JSON.parse(this.dataJson);
            this.temp = features.map((v) => ({
              value: Math.floor(Math.random() * 10) + 1,
              name: v.properties.name,
              
            }));
            this.test();
            console.log('name',this.name);
          }, 1000);
          
        },

        methods: {
          test() {
            const { features = [] } = JSON.parse(this.dataJson);
            const mapData = features.map((v) => {
              const { name } = v.properties;
              const value = Math.floor(Math.random() * 10) + 1;
              return { name, value };
            });
            mapData.forEach((item) => {
              item.itemStyle = {
                normal: { areaColor: '#02b4b8', borderColor: '#fff' },
                emphasis: { areaColor: '#8BB5D8' },
              };
            });
            console.log('mapData', mapData);
            const name = 'piduqu';
            const chart = document.getElementById('map');
            const myChart = echarts.init(chart);
            myChart.showLoading();
            const geoJson = this.dataJson;
            myChart.hideLoading();
            echarts.registerMap(name, geoJson);

            const option = {
              backgroundColor: 'rgba(4,58,112,0)',
              left: '-40%',
              right: '-40%',
              bottom: '-40%',
              top: '-40%',
              tooltip: {
                trigger: 'item',
                // formatter: (params) => params.name,
                formatter: '<span style="font-size: 20px;">{b}</span>',
              },
              visualMap: {
                show: true,
                text: ['高', '低'],
                left: 'left',
                top: 'bottom',
                textStyle: {
                  color: '#00f7ff',
                },
                min: 1,
                max: 10,
                realtime: false,
                calculable: true,
                seriesIndex: [0],
                inRange: {
                  color: ['#2884db', '#244779'],
                },
              },
        
          
              series: [
                {
                  tooltip: {
                    trigger: 'item',
                    formatter: function (item) {
                      // console.log('item', item);
                      var tipHtml = '';
                      tipHtml =
                        '<div style="width: 172px;height: 93px;border-bottom-color:rgb(255,255,255,0.12);">' +
                        '<div style="height: 22px;border-bottom: 1px solid #000;font-size: 18px;">' +
                        item.name +
                        '</div>' +
                        '<div style="display:flex;justify-content: flex-start;color:#494949;margin-bottom:4px;font-size:16px;margin-top:5px">' +
                        '<span style="color:#00F7FF ;font-weight:400;margin-right:10px;">' +
                        '考试人数:' +
                        ' ' +
                        '</span>' +
                        '<span style="color:#00F7FF;font-weight:400;">' +
                        item.value +
                        '</span>' +
                        '</div>' +
                        '<div style="display:flex;justify-content: flex-start;color:#494949;margin-bottom:4px;font-size:16px;margin-top:5px">' +
                        '<span style="color:#666;font-weight:400;margin-right:10px;">' +
                        '平均分:' +
                        ' ' +
                        '</span>' +
                        '<span style="color:#666;font-weight:400;">' +
                        '976.8' +
                        '</span>' +
                        '</div>' +
                        '</div>';
                      return tipHtml;
                    },
                  },
                  type: 'map',
                  map: name,
                  geoIndex: 0,
                  // 长宽比
                  aspectScale: 0.75,
                  // 存在legend时显示
                  showLegendSymbol: false,
                  label: {
                    normal: {
                      show: true,
                      color: '#fff',
                    },
                    emphasis: {
                      show: false,
                      textStyle: {
                        color: '#02131b',
                      },
                    },
                  },
                  // 是否拖动
                  roam: false,
                  itemStyle: {
                    normal: {
                      areaColor: '#02b4b8',
                      borderColor: '#fff',
                    },
                    emphasis: {
                      areaColor: '#ffe900',
                    },
                  },
                  animation: false,
                  data: mapData,
                },
              ],
            };
            myChart.setOption(option);
            // 添加事件
            myChart.off('click');
            myChart.on('click', (params) => {
              console.log('点击', params);
              //   this.$emit('checkCity', params.name);
            });
          },
        },
      });
    </script>

  </body>
</html>

这个地方请求了本地文件

async created() {
   console.log('执行');
   const { data } = await axios.get('./geojson.json');
   console.log('data', JSON.stringify(data));
   this.dataJson = JSON.stringify(data);
 },

下面是两个获取geojson文件的地址
https://datav.aliyun.com/portal/school/atlas/area_selector#&lat=33.50475906922609&lng=104.2822265625&zoom=4
https://hxkj.vip/demo/echartsMap/


总结

echarts地图效果还是比较美观的,根据获取的geojson文件来展示对应的地区.目前只能展示到县区一级,街道乡镇是没有对应的geojson文件的.

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CSDN ECharts 地图是一个功能强大的数据可视化工具,基于百度 ECharts 开源项目开发而成。它主要用于在网页中展示各种地理数据和地图的信息。 CSDN ECharts 地图具有以下特点: 1. 强大的数据可视化功能:ECharts 地图提供了丰富多样的地图展示效果,可以展示全球、国家、省市、区县等各种地图信息。同时,它还支持在地图上绘制各种图表、标记和热力图,方便用户对数据进行更直观、更易懂的分析和展示。 2. 灵活易用的配置和交互:ECharts 地图提供了丰富的配置选项,用户可以根据自己的需求定制地图的样式、标记的图形、颜色等。同时,它还支持交互操作,用户可以通过点击、滚动等方式与地图进行互动,方便用户深入了解数据。 3. 跨平台兼容性好:ECharts 地图支持在多种平台上运行,包括 PC、移动设备和各种主流浏览器。无论是在网页端还是移动端,都可以流畅地展示和操作地图。 4. 社区活跃,资源丰富:作为百度 ECharts 项目的一部分,CSDN ECharts 地图拥有庞大的开发者社区,用户可以在社区中获取到大量的示例代码、文档和教程,帮助用户更好地上手和使用地图。 总的来说,CSDN ECharts 地图是一个功能丰富、灵活易用的数据可视化工具,能够帮助用户实现地理数据的展示和分析,更好地呈现数据的价值。无论是在数据分析、商业决策还是学术研究中,CSDN ECharts 地图都能够为用户提供强有力的支持。 ### 回答2: CSDN是一个IT技术社区,提供了各种技术教程和文章供开发者学习参考。而Echarts是一个基于JavaScript的数据可视化库,可以通过使用Echarts来创建各种图表,包括地图。 Echarts的地图组件是其中的一个核心功能,用于展示各种类型的地理数据。通过CSDN,我们可以轻松地学习和了解如何使用Echarts的地图组件来创建地图可视化效果。 首先,我们可以搜索关于Echarts地图的教程和指南,CSDN上有很多技术博文和视频教程可以学习。这些教程通常会介绍如何加载地图数据、选择合适的地图类型以及如何自定义地图样式。 其次,我们可以在CSDN的论坛或社区中提问和交流关于Echarts地图的问题。这样可以获得其他开发者的帮助和解答,共同解决遇到的困难和问题。 此外,CSDN的资源库中也会有一些Echarts地图的示例代码和项目案例,我们可以参考这些示例来理解和掌握如何使用Echarts地图组件。 总之,通过CSDN可以找到Echarts地图的相关资源和学习资料,帮助开发者了解和掌握如何使用Echarts来创建各种类型的地图可视化效果。 ### 回答3: CSDN Echarts地图是一种基于Echarts的地理信息可视化组件,它在CSDN平台上提供了丰富的地图展示功能。Echarts是百度开源的一款可定制化的数据可视化库,而CSDN作为一个IT技术社区,提供了这一地图组件给其广大的开发者和用户使用。 CSDN Echarts地图可以将各种数据以地域分布的形式直观地展示出来。不论是销售状况、用户分布还是疫情数据,都能通过地图的方式进行展示。这种可视化的方式能够帮助用户更好地理解数据,发现其中的规律和趋势。同时,CSDN Echarts地图也支持用户进行自定义样式的设置,包括地图的颜色、标注的大小和形状等,从而使用户能够根据自己的需求进行定制化的展示。 使用CSDN Echarts地图并不复杂,用户只需要在CSDN平台中引入相关的代码和资源即可。CSDN Echarts地图提供了丰富的API接口,用户可以根据自己的业务需求进行使用。另外,CSDN Echarts地图还具备良好的兼容性和响应速度,在展示大量数据时也能够保持较好的性能。 总的来说,CSDN Echarts地图是一种功能强大、可定制化的地图可视化组件,它能够帮助用户将地理数据以直观的方式展示出来,并且在CSDN平台上使用非常方便。无论是数据分析还是业务展示,使用CSDN Echarts地图都能够提升用户的工作效率和数据可视化效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟很沉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值