Vue中使用echarts@4.x中国地图及AMap相关API的使用

一、此 demo 实现的基本功能

1.中国地图的显示
2.地图点击下钻的功能
3.地图相关组件的使用,例 tooltip…

二、实现思路
初始使用下载本地的中国 geo 格式的 json 数据来绘制地图,点击某一区划(例:山东省)时,以点击的区划名称使用 AMap.DistrictSearch(opts) 构造函数查询下一级的区划信息(例:青岛市区划 id 为 370200)和业务数据整合处理;然后以点击的区划 id 用AMapUI中的组件DistrictExplorer相关方法获取下一级的地图 json 数据,继而绘制下一级地图(例:青岛市),再点下同…
三、引入 echarts
因为 echarts 在 5.0 及之后版本因 包体积优化和法规规定 取消了内置 json 地图数据,但仍然可以下载之前版本的依赖包来使用或下载曾经内置的地图数据。
若要引地图 json 数据,建议下载 echarts@4.9.0 ,这是 echarts 取消内置前的最新版本地图 json 数据,之前的版本地图数据比如 3.x,2.x 或多或少在地图边界和岛屿精度部分有所不准,亲测~
1. 通过 npm 方式下载 echarts


$ npm i echarts@4.9.0

2. 引入 echarts


import echarts from 'echarts'

3. 相关 api 说明

  1. echarts.registerMap
    echarts 方法:在 echarts 5.0 及之后版本取消了registerMap 此方法,所以最新 echarts(v5.2.2)版本引用会报错,所以这里我使用 v4.9.0 来注册地图。
// registerMap 接收两个参数
// 第一个是地图名称,china 为显示右下角南海诸岛,china1 则不显示右下角南海诸岛
// 第二个参数是绘制地图所需的json数据,在这里我下载了两个版本的json数据放在本地引用来使用,见下文echarts.registerMap('china', chinaJson)
  1. echarts.init
    echarts 方法:创建一个 ECharts 实例,返回 echartsInstance,不能在单个容器上初始化多个 ECharts 实例。

// 创建实例,接收三个参数
// 参数dom:实例容器,一般是一个具有高宽的div元素
// 参数theme:可选,应用的主题。可以是一个主题的配置对象
// 参数opts:可选,附加参数this.myChart = echarts.init(dom, theme, opts)
  1. echartsInstance.on
    实例方法:绑定事件处理函数(对应 off:解绑事件处理函数)

// 创建实例,接收三个参数
// 参数eventName:事件名称,全小写,例如'click','mousemove', 'legendselected'
// 参数query:可选,过滤条件,能够只在指定的组件或者元素上进行响应。可为 string 或者 Object
// 参数handler:事件处理函数this.myChart.on(eventName, query, handler)
  1. echartsInstance.setOption
    实例方法:设置图表实例的配置项以及数据,万能接口,所有参数和数据的修改都可以通过 setOption 完成,ECharts 会合并新的参数和数据,然后刷新图表。

配置项部分用法见下文五、echarts 部分配置项。官方配置项手册


// 参数 option:配置项this.myChart.setOption(option)

四、AMap 相关 api 使用说明
1. 引入 AMap


<!-- html文件 --><!--引入高德地图JSAPI,key值是在AMap官方申请的哦,plugin是项目中用到的插件 -->
<script src="//webapi.amap.com/maps?v=2.0&key=bb36205e1ab4869979c6505a3cc362ee&plugin=AMap.DistrictSearch"></script><!--引入UI组件库(1.1版本) -->
<script src="//webapi.amap.com/ui/1.1/main.js"></script>

2. AMap.DistrictSearch(opt)
插件,行政区查询服务,提供行政区相关信息。官方文档


/** 
参数opts:对象,实例时的配置
opts:{level: String, 关键字对应的行政区级别或商圈,可选值showbiz: Boolean, 是否显示商圈,默认值trueextensions: String,是否返回行政区边界坐标点。默认值:base,不返回行政区边界坐标点,取值:all,返回完整行政区边界坐标点subdistrict:Number,默认1,显示下级行政区级数(行政区级别包括:国家、省/直辖市、市、区/县4个级别),商圈为区/县下一级。0不返回下一级区划,1返回下一级区划,2...,3...。
}
**/const districtSearch = new AMap.DistrictSearch(opts)
// 根据关键字查询行政区或商圈信息 关键字支持:行政区名、citycode、adcode、商圈名,默认值:“全国”
districtSearch.search(obj.data.name, (status, result) => {console.log('加载区划信息', status, result)
})

3. DistrictExplorer
加载绘制地图所需的 geo 格式的 json 数据。(行政区划浏览) 提供了全国范围内到区县一级的行政区划数据(含边界),同时提供一些辅助功能,比如区划面绘制、事件监听,以及快速判断经纬度所属的子级区划等。官方文档


// 使用AMapUI.loadUI(['geo/DistrictExplorer'], (DistrictExplorer) => {let districtExplorer = new DistrictExplorer({eventSupport: true, // 打开事件支持map: null, // 地图对象实例。仅仅获取数据,不涉及地图相关的操作时,可以不设置})districtExplorer.loadAreaNode(obj.data.cityCode, (error, areaNode) => {if (error) returnconst mapJson = {}// 返回该区域中全部的子级区划Feature数组mapJson.features = areaNode.getSubFeatures() || []console.log('绘制地图所需的json数据', mapJson)})
})

五、echarts 部分配置项


const option = {visualMap: {// 视觉映射组件配置type: 'continuous', // 定义为连续型 visualMapshow: true,bottom: '5%',left: '2%',text: ['高', '低'], // 两端的文本min: 0, // 指定 visualMapContinuous 组件的允许的最小值max: 100, // 指定 visualMapContinuous 组件的允许的最大值inRange: {// 定义 在选中范围中 的视觉元素color: ['#fff', '#A0CFFF', '#409EFF'], // 图元的颜色},calculable: true, // 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)},tooltip: {// 提示框组件trigger: 'item',formatter: function (item) {if (item.name == '南海诸岛') {return ''} else {return item.name + '<br>业务数据:' + (item.value || 0) + ' 个'}},},series: [// 系列列表。每个系列通过 type 决定自己的图表类型{type: 'map', // 系列列表。每个系列通过 type 决定自己的图表类型map: 'china', // 地图。china 为中国全国地图+右下角南海诸岛,china1 为中国全国地图name: '业务数据', // 系列名称,用于tooltip的显示,legend 的图例筛选,在 setOption 更新数据和配置项时用于指定对应的系列aspectScale: 0.75, // 用于 scale 地图的长宽比zoom: 1.2, // 地图缩放多少倍roam: true, // 允许缩放和平移mapType: '自定义地图',selectedMode: 'single', // 点击区域,会处于选中状态,single单选showLegendSymbol: false, // 在图例相应区域显示图例的颜色标识(系列标识的小圆点),存在 legend 组件时生效// center: [100.97, 35.71], // 初始化时的地图位置,可通过改变地图中心视角的经纬度来实现地图的平移itemStyle: {// 地图区域的多边形图形样式normal: {// 正常时的样式color: '#ccc', // 图形的颜色borderColor: '#303133', // 图形的描边颜色areaColor: '#d4f7fc', // 地图区域颜色borderWidth: 0.5, // 描边线宽。为 0 时无描边label: {// 设置地图区域名的文本样式,例如地名的字体大小等show: true, // 显示地区的文本名称,默认是不显示的,默认状态是hoverORclick才显示fontSize: 12,textStyle: {color: '#606266',},},},emphasis: {// 选中后的样式areaColor: '#4382F6',borderColor: '#fff',areaStyle: {color: '#fff',},label: {show: true,fontSize: 12,textStyle: {color: '#003767',},},},},data: this.mapData, // 地图系列中的数据内容数组。数组项可以为单个数值},],
}

六、地图 json 数据说明及 demo 效果图

  1. 地图 json 数据说明比较#
    echarts@5.0 版本之前内置的 geo 地图 json 数据(这里特指v4.9.0)是不显示海南省下方的南海诸岛海域,所以地图较方正。

阿里datav的地图 json 数据是显示海南省下方的南海诸岛海域,所以地图偏高。

  1. demo 效果图#
    1.使用echarts@4.9.0内置的地图 json 数据绘制
    在这里插入图片描述
    2.使用阿里datav下载的地图 json 数据绘制
    在这里插入图片描述
    到这里,就全部介绍完毕了,希望对你有用的话,可以帮俺点点赞点点关注谢谢哈!

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

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

相关文章

【计算机设计大赛】冬残奥会可视化系统_附源码—信息可视化赛道获奖项目深入剖析【可视化项目案例-19】

🎉🎊🎉 你的技术旅程将在这里启航! 记得看本专栏里顶置的可视化宝典导航贴哦! 🚀🚀 本专栏为可视化专栏,包含现有的所有可视化技术。订阅专栏用户在文章底部可下载对应案例完整源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不论你…

linux(6):linux用户和权限

在linux基础命令第五弹中http://t.csdnimg.cn/Fu5cJ我们学到了关于如何查看命令选项的帮助手册&#xff0c;到此&#xff0c;基础命令的学习先告一段落&#xff0c;我们来学习linux有关用户和权限的问题&#xff0c;这是很有必要的&#xff0c;如果任何人都可以修改我们的文件内…

数据结构 | 查漏补缺之顺式存储和链式存储、如何评价哈希函数的好坏、链地址法、树的遍历、关键路径、完全图、连通图、迪杰斯特拉、b树

目录 顺式存储和链式存储 优缺点比较 顺序存储 ​编辑 链式存储 如何评价哈希函数的好坏 简述哈希查找中链地址法解决冲突的方法 树的遍历 关键路径 完全图 连通图 迪杰斯特拉 b树 特点&#xff1a; 插入&#xff08;索引不能大于&#xff1a;最大为 M-1 个&#…

拼接不同文件夹中同名图片的方法

有时候为了方便对比不同文件夹中同名图片&#xff0c;需要拼接在一起&#xff0c;这里提供一个拼接方法&#xff0c;当然不同命文件也可以实现拼接&#xff0c;稍微改改就能实现 如下图&#xff0c;在文件夹中有五个文件夹中的图片需要拼接&#xff0c;拼接后的图片存放在img_…

Spark RDD的转换

按颜色区分转换&#xff1a; 绿色是单 RDD 窄依赖转换黑色是多 RDD 窄依赖转换紫色是 KV 洗牌型转换黄色是重分区转换蓝色是特例的转换 单 RDD 窄依赖转换 MapPartitionRDD 这个 RDD 在第一次分析中已经分析过。简单复述一下&#xff1a; 依赖列表&#xff1a;一个窄依赖&…

日历管理:应对金融服务行业数据调度的复杂挑战

在当今快速发展的金融服务行业中&#xff0c;数据管理和调度的复杂性日益增加。在金融服务公司面临着多元化的挑战&#xff0c;这些挑战不仅涉及技术层面&#xff0c;还包括安全、运维和业务流程的优化。 日历管理在工作流调度中看似是一个较小的功能&#xff0c;但对于许多企业…

cmake的下载及安装

文章目录 下载安装 下载 cmake官网下载 进入 v3.22版本目录下。或者直接点击https://cmake.org/files/v3.22/进入&#xff0c;省略上面的步骤 浏览器上下载太慢&#xff0c;这里选择在Linux上通过wget方式下&#xff0c;不过下载速度也不是它快。主要是软件所在的服务器在国…

数据质量管理软件行业分析:2023年复合增长率达到31.9%

数据质量管理软件按照一般的功能模块划分可以划分为产品信息管理、存货管理、销售管理、采购管理、生产管理、设备管理、实验室管理、品质管理、售后管理等模块&#xff0c;质量管理绝非仅仅检验&#xff0c;或者常说的批检、巡检、首检、自检等&#xff0c;质量管理是对只要影…

串行计时芯片D1380/D1381,2.0V~5.5V 工作电流: 2V时 与TTL 兼容,采用DIP8、SOP8封装

D1380/D1381是一个带秒、分、时、日、日期、月、年的串行时钟保持芯片,每个月多少天以及闰年能自动调节, D1380/D1381低功耗工作方式, D1380/D1381用若干寄存器存储对应信息&#xff0c;一个32.768kHz 的晶振校准时钟&#xff0c;为了使用最小弓|脚&#xff0c;D1380/D1381使用…

论文润色会被认为是代写吗知乎 神码ai

大家好&#xff0c;今天来聊聊论文润色会被认为是代写吗知乎&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 标题&#xff1a;论文润色会被认为是代写吗――探讨论文润色与代写的关系 一、引言 在学术研…

bugku -- 网站被黑--本地管理员

dirsearch 或者御剑扫目录 扫出来有个登录页面 然后bp抓包爆破密码 扫出来密码是heck登录就行了 构造x-forwarded-for:127.0.0.1 本地登录&#xff1a; 爆破账号 密码是text123 下面的base64解码可以知道

java swing 药品销售系统 mysql

数据库 查询药品&#xff1a; 出售药品&#xff1a; 查询客户信息&#xff1a; 查询订单信息&#xff1a;

【算法Hot100系列】两数相加

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

如何用ChatGPT分析恶意软件?

自从我们进入数字化时代以来&#xff0c;恶意软件就一直是计算机应用系统的“心腹大患”。事实上&#xff0c;每一次技术进步都会为恶意行为者提供更多的工具&#xff0c;使得他们的攻击行为更具破坏性。不过&#xff0c;如今生成式人工智能的崛起&#xff0c;似乎让一直以来的…

2023年【G3锅炉水处理】找解析及G3锅炉水处理模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 G3锅炉水处理找解析根据新G3锅炉水处理考试大纲要求&#xff0c;安全生产模拟考试一点通将G3锅炉水处理模拟考试试题进行汇编&#xff0c;组成一套G3锅炉水处理全真模拟考试试题&#xff0c;学员可通过G3锅炉水处理模…

【网络】简单聊一下 TIME_WAIT

问题背景 笔者在看自己服务状态数据的时候&#xff0c;会发现有很多 tcp 的连接&#xff0c;也会发现有很多处于不同状态下的 tcp 连接&#xff0c;TIME_WAIT 的连接数有83个&#xff0c;为了弄清楚这个 TIME_WAIT 是什么&#xff0c;整理了下面的笔记用于梳理概念 基础流程…

rocketmq window测试小Demo 解决找不到或无法加载主类的问题

文章目录 rocketMQ启动1.下在相关的二进制文件2.配置环境变量3.启动NameServer4.启动broker5. MQ 启动&#xff01;5.1 测试发送数据 6.关闭服务 rocketMQ启动 1.下在相关的二进制文件 下载地址&#xff0c;点击即达 2.配置环境变量 3.启动NameServer 在文件夹下执行cmd进…

Redis7--基础篇9(SpringBoot集成Redis)

1. jedis、lettuce、Redistemplate的关系 第一代为jedis&#xff0c;之后推出了lettuce&#xff0c;然后springboot继承了Redistemplate&#xff0c;现推荐使用Redistemplate。 总的来说&#xff0c;jedis、lettuce、Redistemplate都是java操作Redis数据库的驱动。 2. 本地Ja…

深度学习(六):paddleOCR理解及识别手写体,手写公式,表格

1.介绍 1.1 什么是OCR? 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的技术&#xff0c;检测图像中的文本资料&#xff0c;并且识别出文本的内容。…

一键删除TXT文本符号,高效批量处理,轻松提升工作效率!

你是否经常处理大量的TXT文本文件&#xff0c;但其中充满了各种符号和不需要的字符&#xff1f;这不仅影响文本的阅读体验&#xff0c;还可能对后续的数据处理和分析造成困扰。现在&#xff0c;我们为你带来一款全新的TXT文本处理工具&#xff0c;一键删除符号&#xff0c;高效…