Echarts 绘制地图(中国、省市、区县),保姆级教程!

news2024/11/17 0:06:11

前言:大家好呀,这篇讲述 Vue+Echarts 绘制地图(中国、省市、区县),保姆级教程!话不多说,上干货:

先安利两个网址,是制作地图的资源

DataV.地图GeoJSON数据

Apache Echarts 地图配置示例-香港

目录

一. 安装 Apache Echarts

1.1 安装

1.2 引用

二. 新建目录

三. 获取地图的GeoJSON

四. 配置api

五. 配置地图信息 

5.1 引入 Echarts、广西地图数据

5.2 准备容器:(使用div、canvas均可)

5.3 绘制地图

5.4 即可得到广西的地图啦

六. Apache Echarts配置项

6.1 配置数据项

6.1.1 配置数据

6.1.2 配置提示框

6.1.3 加标题  

6.1.4 根据数据配置不同显示颜色

七. 绘制中国地图 

八. 绘制县级地图

一. 安装 Apache Echarts

1.1 安装

npm install echarts --save

1.2 引用

 这个不用在main中注册使用,直接在需要echarts的页面中引入即可。

二. 新建目录

api:用于存放获取(后端、地图JSON数据)数据的文件夹;

json:存放map的GeoJSON数据;

三. 获取地图的GeoJSON

点击DataV.地图GeoJSON数据

左侧是地图,右侧是JSON数据路径,点击你想要生成的地图省市、地级(以广西省为例);

点进去是一级,再点进去是二级,直到你想要的省市地区(点击旁边的空白可以返回上一级);

 然后其右侧有JSON数据的链接地址,可以选择下载下来(放在json文件夹中),也可以使用在线地址!(json API与geoJSON数据地址均可用)

四. 配置api

使用axios获取数据(使用在线链接):

代码不难,我就不解释了

五. 配置地图信息 

数据都准备好了,我们开始绘制地图:

5.1 引入 Echarts、广西地图数据

import * as echarts from 'echarts';

import getGuangXiMap from './api/getGuangXiMap';

5.2 准备容器:(使用div、canvas均可)

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

解释一下: 1. 需要先指定宽高 ;2. ref标记是为了应和vue获取dom的方式。

5.3 绘制地图

vue在mounted时才能获取到页面DOM,故而地图写在mounted中:

 mounted() {
    // 初始化统计图对象
    var myChart = echarts.init(this.$refs["chartsDOM"]);
    // 显示 loading 动画
    myChart.showLoading();
    // 再得到数据的基础上,进行地图绘制
    getGuangXiMap.then(res => {
      // 得到结果后,关闭动画
      myChart.hideLoading();
      // 注册地图(数据放在axios返回对象的data中哦)
      echarts.registerMap('GX', res.data);
      var option = {
        series: [
          {
            name: '广西地图',
            type: 'map',
            map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            }
          }
        ]
      };
      myChart.setOption(option);
    })
  }
}

5.4 即可得到广西的地图啦

六. Apache Echarts配置项

大家有可能看过apache echarts 的地图配置项,非常多,只是为了实现其他的效果,可以参考配置项手册 ;后期我会推出【配置式统计图工具】,就是不用大家查阅配置手册啦,通过按钮点击、选择,即可得到你想要的效果,望大家 持续关注 呀。

6.1 配置数据项

现在大家还是通过查阅配置项手册完善地图信息,下面简单演示一下其他效果:

6.1.1 配置数据
var option = {
        series: [
          {
            name: '广西地图',
            type: 'map',
            map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            },
            data: [
              { name: '南宁市', value: 12001 },
              { name: '崇左市', value: 12001 },
              { name: '柳州市', value: 12001 },
              { name: '来宾市', value: 12001 },
              { name: '桂林市', value: 12001 },
              { name: '梧州市', value: 12001 },
              { name: '贺州市', value: 12001 },
              { name: '玉林市', value: 12001 },
              { name: '贵港市', value: 12001 },
              { name: '百色市', value: 12001 },
              { name: '钦州市', value: 12001 },
              { name: '河池市', value: 12001 },
              { name: '北海市', value: 12001 },
              { name: '防城港市', value: 12001 },
            ]
          },
        ]
      };
6.1.2 配置提示框
var option = {
        tooltip: {},// 配置提示框,有这个配置项即可
        series: [
          {
            name: '广西地图',
            type: 'map',
            map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            },
            data: [
              { name: '南宁市', value: 12001 },
              { name: '崇左市', value: 12001 },
              { name: '柳州市', value: 12001 },
              { name: '来宾市', value: 12001 },
              { name: '桂林市', value: 12001 },
              { name: '梧州市', value: 12001 },
              { name: '贺州市', value: 12001 },
              { name: '玉林市', value: 12001 },
              { name: '贵港市', value: 12001 },
              { name: '百色市', value: 12001 },
              { name: '钦州市', value: 12001 },
              { name: '河池市', value: 12001 },
              { name: '北海市', value: 12001 },
              { name: '防城港市', value: 12001 },
            ]
          },
        ]
      };

6.1.3 加标题  
var option = {
        title:{
            text:'广西GDP统计图(/万元)'
        },
        tooltip: {},// 配置提示框,有这个配置项即可
        series: [
          {
            name: '广西地图',
            type: 'map',
            map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            },
            data: [
              { name: '南宁市', value: 12001 },
              { name: '崇左市', value: 12001 },
              { name: '柳州市', value: 12001 },
              { name: '来宾市', value: 12001 },
              { name: '桂林市', value: 12001 },
              { name: '梧州市', value: 12001 },
              { name: '贺州市', value: 12001 },
              { name: '玉林市', value: 12001 },
              { name: '贵港市', value: 12001 },
              { name: '百色市', value: 12001 },
              { name: '钦州市', value: 12001 },
              { name: '河池市', value: 12001 },
              { name: '北海市', value: 12001 },
              { name: '防城港市', value: 12001 },
            ]
          },
        ]
      };
6.1.4 根据数据配置不同显示颜色

 Apache Echarts 配置项手册-visualMap

详情参考上链接(颜色能否区分,取决于数据的差距程度)

实现如上。

完整代码如下:

 mounted() {
    // 初始化统计图对象
    var myChart = echarts.init(this.$refs["chartsDOM"]);
    // 显示 loading 动画
    myChart.showLoading();
    // 再得到数据的基础上,进行地图绘制
    getGuangXiMap.then(res => {
      // 得到结果后,关闭动画
      myChart.hideLoading();
      // 注册地图(数据放在axios返回对象的data中哦)
      echarts.registerMap('GX', res.data);
      var option = {
        visualMap: {
          min: 1111,
          max: 333332,
          realtime: false,
          calculable: true,
          inRange: {
            color: ['lightskyblue', 'yellow', 'orangered']
          }
        },
        title: {
          text: '广西GDP统计图(/万元)'
        },
        tooltip: {},
        series: [
          {
            name: '广西地图',
            type: 'map',
            map: 'GX',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            },
            data: [
              { name: '南宁市', value: 11111 },
              { name: '崇左市', value: 22221 },
              { name: '柳州市', value: 33333 },
              { name: '来宾市', value: 22231 },
              { name: '桂林市', value: 44441 },
              { name: '梧州市', value: 555525 },
              { name: '贺州市', value: 162475 },
              { name: '玉林市', value: 65454 },
              { name: '贵港市', value: 77771 },
              { name: '百色市', value: 88884 },
              { name: '钦州市', value: 99995 },
              { name: '河池市', value: 10001 },
              { name: '北海市', value: 122222 },
              { name: '防城港市', value: 333332 },
            ]
          },
        ]
      };
      myChart.setOption(option);
    })
  }

七. 绘制中国地图 

步骤同上,演示一下效果:

(修改请求json路径)

mounted() {
    // 初始化统计图对象
    var myChart = echarts.init(this.$refs["chartsDOM"]);
    // 显示 loading 动画
    myChart.showLoading();
    // 再得到数据的基础上,进行地图绘制
    getChinaMap.then(res => {
      // 得到结果后,关闭动画
      myChart.hideLoading();
      // 注册地图(数据放在axios返回对象的data中哦)
      echarts.registerMap('China', res.data);
      var option = {
        series: [
          {
            name: '中国地图',
            type: 'map',
            map: 'China',// 这个是上面注册时的名字哦,registerMap('这个名字保持一致')
            label: {
              show: true
            },
          },
        ]
      };
      myChart.setOption(option);
    })
  }

八. 绘制县级地图

步骤同上,就不在赘述了~

以柳城县为例,效果如下:

好了,本文就到这里吧,点个关注 再走嘛~

 🚀 个人简介:6年开发经验,现任职某国企前端负责人,分享前端相关技术与工作常见问题~
💟 作    者:前端菜鸟的自我修养❣️
📝 专    栏:GIS地图与大数据可视化
🌈 若有帮助,还请关注➕点赞➕收藏,不行的话我再努努力💪💪💪

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1812521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微软将于 2024 下半年开始淘汰 VBScript

微软将于 2024 下半年开始淘汰 VBScript 微软宣布将从 2024 年下半年开始弃用 VBScript&#xff0c;使其成为一项按需功能 (Features on Demand&#xff0c;FOD)&#xff0c;直至完全删除。 按需功能是 Windows 操作系统中的可选功能&#xff0c;如 .NET Framework&#xff…

算法金 | D3blocks,一个超酷的 Python 库

​大侠幸会&#xff0c;在下全网同名[算法金] 0 基础转 AI 上岸&#xff0c;多个算法赛 Top [日更万日&#xff0c;让更多人享受智能乐趣] 1 选武入道 - 概况速览 库简介&#xff1a;D3Blocks是一个基于d3 javascript (d3js)的图形库&#xff0c;通过只需少量的Python代码就能…

安全相关的一些基础知识(持续更新)

目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法&#xff08;摘要算法&#xff09; 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里&#xff0c;把随机数的生…

MySQL学习(2):数据库相关概念及windows环境下安装

1.数据库、数据库管理系统、SQL 主流的关系型数据库有4种&#xff1a;oracle、mysql、SQLserver、PostgreSQL&#xff0c;它们都是SQL语言控制的 2.windows系统安装mysql 2.1下载安装包 mysql分为社区版&#xff08;免费&#xff09;和商业版&#xff08;30天试用&#xff09…

面试题:ArrayList和LinkedList的区别

ArrayList和LinkedList都是Java中实现List接口的集合类&#xff0c;用于存储和操作对象列表&#xff0c;但它们在内部数据结构、性能特性和适用场景上有所不同&#xff1a; 1.内部数据结构&#xff1a; ArrayList&#xff1a;基于动态数组实现。这意味着它在内存中是连续存储…

NodeJS体育用品销售管理系统-计算机毕业设计源码88807

摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存…

BDD100k

摘要 数据集推动视觉进步&#xff0c;但现有的驾驶数据集在视觉内容和支持任务方面都很贫乏&#xff0c;以研究自动驾驶的多任务学习。研究人员通常被限制在一个数据集上研究一小部分问题&#xff0c;而现实世界的计算机视觉应用需要执行各种复杂的任务。我们构建了一个包含10…

一张试卷

目录 问题 1: 1.时间 题目描述1 输入1 输出1 样例输入1 样例输出1 提示1 代码1 问题 2: 超酷的电话号码 题目描述2 输入2 输出2 样例输入2 样例输出2 提示2 代码2 问题 3:3.爸爸的数学题 题目描述3 输入3 输出3 样例输入3 样例输出3 提示3 代码3 问题 4: 4. 营养膳食 题目描述4…

c# 学习 3

显示转换 异常捕获 语法

Django面试题

1. 什么是wsgi&#xff1f; WSGI 是 “Web Server Gateway Interface” 的缩写&#xff0c;它是一种用于 Python Web 应用程序和 Web 服务器之间通信的标准接口。它定义了一组规则和约定&#xff0c;使 Web 服务器能够与任何符合 WSGI 规范的 Python Web 应用程序进行交互。 #…

Javascript学习之路:js中关于遍历总结

循环/遍历 循环&#xff0c;就是一遍又一遍的重复执行相同或者相似的代码循环结构的两个要素 循环体–要执行的相同或相似的语句循环条件–重复执行的次数&#xff0c;或者继续执行循环的条件 &#x1f449;while循环 while循环语法格式 while(boolean表达式){循环体语句}//…

3D高斯泼溅原理及实践【3DGS】

人工智能可能是我们这个时代的主要领域之一&#xff0c;它几乎可以用于从驾驶汽车到医疗保健甚至能够预防失明等所有领域&#xff0c;最近提出了一种新的 3D 重建方法。SNGULAR 及其人工智能团队希望了解有关 3D 重建技术的最新更新的更多信息。 目前可用于 3D 重建的许多 SOT…

[干货!必看文章]学会如何用L4级AI软件开发平台免费制作应用程序

前言&#xff1a; 自从ChatGPT问世以来&#xff0c;就掀起了全球AI大模型的浪潮。国外有Claude&#xff0c;Llama&#xff0c;Grok&#xff0c;Suno&#xff0c;国内有kimi&#xff0c;有智谱AI&#xff0c;有通义千问&#xff0c;还有文心一言... 国内大模型市场规模已经达到了…

【Python/Pytorch - 网络模型】-- 手把手搭建U-Net模型

文章目录 文章目录 00 写在前面01 基于Pytorch版本的UNet代码02 论文下载 00 写在前面 通过U-Net代码学习&#xff0c;可以学习基于Pytorch的网络结构模块化编程&#xff0c;对于后续学习其他更复杂网络模型&#xff0c;有很大的帮助作用。 在01中&#xff0c;可以根据U-Net…

瓦片边界可视化工具

本文涉及的核心内容 瓦片边界可视化-VisibleTileBoundariesmeethigher/visible-tile-boundaries: visible tiles boundaries demo 一、瓦片边界可视化 1.1 背景 日常GIS开发中&#xff0c;需要了解瓦片是什么&#xff0c;瓦片展示的效果是什么样的。这种口头上抽象的东西&a…

计算机哈佛架构、冯·诺依曼架构对比

哈佛架构和冯诺依曼架构是两种不同的计算机系统架构&#xff0c;它们在存储器组织方式上有着显著的区别。下面是它们的原理、优缺点的对比以及一些常见的 MCU 采用的架构&#xff1a; 哈佛架构&#xff1a; 原理&#xff1a;哈佛架构将指令存储器&#xff08;程序存储器&#x…

Androd adb命令汇总,app专项测试命令。

1.普通命令 1.1 devices命令 # 语法格式 &#xff1a;adb devices [-l] # 作用 &#xff1a;返回已连接设备的信息 # 示例 &#xff1a;adb devices : 返回设备的信息adb devices -l : 返回设备的详细信息1.2 help命令 # 语法格式 &#xff1a;adb --help # 作用 &…

攻防世界--杂项misc-2017_Dating_in_Singapore

题目信息 题目描述和附件分别是一串数字和新加坡日历&#xff0c;数字中间有短线-连接&#xff0c;刚好分成了12个字段。猜想对应了12个月 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-020…

集合进阶(接口Collection(迭代器、增强for、Lambda表达式)、List中常见的方法和五种遍历方式、数据结构(栈、队列、数组、链表)

一、单列集合顶层Collection List系列集合&#xff1a;添加的元素是有序、可重复、有索引Set系列集合&#xff1a;添加的元素是无序、不重复、无索引 Collection是单列集合的祖宗接口&#xff0c;它的功能是全部单列集合都可以继承使用的。 Collection的遍历方式 1、迭代器——…

catia零件装配中通过指南针移动零件

1 将零件导入进来后 2 把指南针移动到零件上 具体移动哪个可以通过模型树点击选中&#xff0c;选中那个就可以移动那个。 这种情况需要注意的是 需要双击选择要移动零件的父节点 如下图&#xff0c;Product2蓝色表示是激活的&#xff0c;这样才可以单击选中下面的零件后通过…