echarts地图自定义label属性以及引入china.js

news/2024/5/21 17:34:57/文章来源:https://blog.csdn.net/qq_59626859/article/details/137355079
效果图:

要点1:calc函数

重点:在于mapChart的height可以写成函数以便适配不同尺寸;

        <div class="content-map"><div class="wai-top-box" style="width: 100%; height: 100%"><div id="mapChart" style=" width: 100%; height: calc(100vh - 100px)"> </div></div></div>重点1:在于mapChart的height可以写成函数适配不同尺寸
要点2:要点较多
map: {title: {text: '',x: 'center',textStyle: {color: '#333333'}},tooltip: {trigger: 'item',showDelay: 0,transitionDuration: 0.2,formatter: function (params) {const value = (params.value + '').split('.');const valueStr = value[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,');return params.name + ': ' + (params.value ? valueStr : 0);}},// 数据和类型series: [{type: 'map',map: 'china',label: {normal: {  PS: 自定义label 一定要写在norml里面show: true,position: 'inside',formatter: function (params) {  params就是数据请求里面的对象{name:xxx,value:xxx}const value = (params.value + '').split('.');const valueStr = value[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,');return params.name + '\n' + '{a|' + (params.value ? valueStr : 0) + '}';   PS:\n用于换行},rich: {      PS:rich可以对自定的label的样子进行单独修改 ,该场景是下面的数字的fontSize比上面的小 a: {color: "rgba(104, 104, 104, 0.8)",fontSize: 12,lineHeight: 16}},color: 'rgba(104, 104, 104, 0.8)',fontSize: 17},},// 地图区域的多边形 图形样式。itemStyle: {normal: {borderColor: '#E3E3E3', 省会旁边的描边颜色 即border的属性borderWidth: 1},},// 地图大小倍数zoom: 1.2, 感觉data: []}],visualMap: {type: "piecewise",  这里是采用根据区间来设置颜色min: 0,text: ['High', 'Low'],realtime: true,calculable: true,textStyle: {color: '#fff'},
//               inRange: { 这种情况是不限制区间根据地图自动渲染//        color: ['#FFFAED', '#840007', 'blue']//      },pieces: [{ gt: 3000, color: "#280000" },{ gt: 1000, lte: 3000, color: "#450000" },{ gt: 500, lte: 1000, color: "#630000" },{ gt: 300, lte: 500, color: "#840007" },{ gt: 250, lte: 300, color: "#9B000C" },{ gt: 200, lte: 250, color: "#B20011" },{ gt: 150, lte: 200, color: "#CA0017" },{ gt: 100, lte: 150, color: "#DA0C23" },{ gt: 90, lte: 100, color: "#E22537" },{ gt: 80, lte: 90, color: "#EA3E4B" },{ gt: 70, lte: 80, color: "#F25760" },{ gt: 60, lte: 70, color: "#FB7174" },{ gt: 50, lte: 60, color: "#FF9469" },{ gt: 40, lte: 50, color: "#FFB24C" },{ gt: 30, lte: 40, color: "#FFCB45" },{ gt: 20, lte: 30, color: "#FFD15D" },{ gt: 10, lte: 20, color: "#FFD874" },{ gt: 1, lte: 10, color: "#FFE5A3" },{ value: 0, lte: 1, color: "#FFFAED" }],right: -100}}
要点3:数据请求
 getMap() {// 中国地图this.map.series[0].data = [];distributed().then((res) => {this.nowData = res.data;res.data.loanProvinceCountList.forEach((item) => {if (item.province) {this.map.series[0].data.push({name:item.province value: item.loanCount});}console.log(this.map.series[0].data);});this.map.series[0].data.push({name: '南海诸岛',itemStyle: {normal: {opacity: 1,label: {show: false}}}});let mapChartDom = document.getElementById('mapChart');let mapChart = this.$echarts.init(mapChartDom);mapChart.setOption(this.map);window.addEventListener('resize', function () {mapChart.resize();   根据尺寸自适应});});},
要点4:引用china 

因为报错说map.china不存在

在main.js里面引入china.json
import * as echarts from 'echarts';
import china from 'echarts/map/json/china.json'
echarts.registerMap('china', china)
要点5:将展示的label居中

因为地图默认文字展示的是省会城市

将node_module里面的echarts里面的map的china.json文件复制一份在util下面
将要点4的import china from 'echarts/mapxxxx'改为引入util下面的china.json
import china from '@/utils/china.json'

各个省份居中都对应的经纬度, 修改chin.json里面的cp值;

 

1.新疆: [86.61 , 40.79]
2.西藏:[89.13 , 30.66]
3.黑龙江:[128.34 , 47.05]
4.吉林:[126.32 , 43.38]
5.辽宁:[123.42 , 41.29]
6.内蒙古:[112.17 , 42.81]
7.北京:[116.40 , 40.40 ]
8.宁夏:[106.27 , 36.76]
9.山西:[111.95,37.65]
10.河北:[115.21 , 38.44]
11.天津:[117.04 , 39.52]
12.青海:[97.07 , 35.62]
13.甘肃:[103.82 , 36.05]
14.山东:[118.01 , 36.37]
15.陕西:[108.94 , 34.46]
16.河南:[113.46 , 34.25]
17.安徽:[117.28 , 31.86]
18.江苏:[120.26 , 32.54]
19.上海:[121.46 , 31.28]
20.四川:[103.36 , 30.65]
21.湖北:[112.29 , 30.98]
22.浙江:[120.15 , 29.28]
23.重庆:[107.51 , 29.63]
24.湖南:[112.08 , 27.79]
25.江西:[115.89 , 27.97]
26.贵州:[106.91 , 26.67]
27.福建:[118.31 , 26.07]
28.云南:[101.71 , 24.84]
29.台湾:[121.01 , 23.54]
30.广西:[108.67 , 23.68]
31.广东:[113.98 , 22.82]
32.海南:[110.03 , 19.33]
33.澳门:[113.54 , 22.19]
34.香港:[114.17 , 22.32]
 

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

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

相关文章

WebGPU vs. 像素流

在构建 Bzar 之前&#xff0c;我们讨论过我们的技术栈是基于在云上渲染内容的像素流&#xff0c;还是基于使用设备自身计算能力的本地渲染技术。 由于这种选择会极大地影响项目的成本、可扩展性和用户体验&#xff0c;因此在开始编写一行代码之前&#xff0c;从一开始就采取正确…

消息队列MQ(面试题:为什么使用MQ)

一、什么是mq? MQ全称 Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信&#xff0c;解耦。 二、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq RabbitMQ: One broker …

LangChain学习笔记—RAG(检索增强生成)

LangChain LangChain是一个软件开发框架&#xff0c;可以更轻松地使用大型语言模型&#xff08;LLM&#xff09;创建应用程序。它是一个具有 Python 和 JavaScript 代码库的开源工具。LangChain 允许开发人员将 GPT-4 等 LLM 与外部数据相结合&#xff0c;为聊天机器人、代码理…

设计模式 -- 发布订阅模式

发布订阅模式&#xff1a; 订阅者把自己想订阅的事件注册到调度中心&#xff0c;当发布者发布该事件到调度中心&#xff0c;也就是该事件触发时&#xff0c;由调度者统一调度订阅者注册到调度中心的处理代码。 在javaScript 中我们一般使用事件模型来代替传统的发布订阅模式。 …

分布式锁-redission

5、分布式锁-redission 5.1 分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题&#xff1a; 重入问题&#xff1a;重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中&#xff0c;可重入锁的意义在于防止死锁&#xff0c;比如HashTable这样的代码…

【Linux】虚拟机连不上外网 (1),2024百度网络安全岗面试真题收录解析

vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes IPADDR? NETMASK? GATEWAY? dns18.8.8.8 dns1144.144.144.144 这两个必填 自我介绍一下&#xff0c;小编13年上海交大毕业&#xff0c;曾经在小公司待过&#xff0c;也去过华为、OPPO等大厂…

【测试开发学习历程】python迭代、可迭代对象、迭代器、生成器

1 迭代Iteration 迭代Iteration&#xff1a;所谓迭代就是重复运行一段代码语句块的能力&#xff0c;就好比在一个容器中进行一层一层遍历数据&#xff0c;在应用过程中for循环最为突出。迭代就是从某个容器对象中逐个地读取元素&#xff0c;直到容器中没有元素为止。迭代迭代&…

信息泄露漏洞的JS整改方案

引言 &#x1f6e1;️ 日常工作中&#xff0c;我们经常会面临线上环境被第三方安全厂商扫描出JS信息泄露漏洞的情况&#xff0c;这给我们的系统安全带来了潜在威胁。但幸运的是&#xff0c;对于这类漏洞的整改并不复杂。本文将介绍几种可行的整改方法&#xff0c;以及其中一种…

IPEX-LLM(原名BigDL-LLM)环境配置

IPEX-LLM 是一个为Intel XPU (包括CPU和GPU) 打造的轻量级大语言模型加速库&#xff0c;在Intel平台上具有广泛的模型支持、最低的延迟和最小的内存占用。 您可以使用 IPEX-LLM 运行任何 PyTorch 模型&#xff08;例如 HuggingFace transformers 模型&#xff09;。在运行过程中…

Canal的使用场景!!!

1、保持redis和mysql连接的一致性&#xff1a;通常使用延迟双删功能&#xff08;具有弊端&#xff09; 解决方案&#xff1a;可以使用canal监听数据库的变化&#xff08;删改&#xff09;&#xff0c;一旦出现此类操作&#xff0c;立即删除redis中的对应数据&#xff0c;直至下…

SuperMap GIS基础产品FAQ集锦(202403)

一、SuperMap GIS基础产品桌面GIS-FAQ集锦 问题1&#xff1a;【iDesktop】安装了idesktop 11i&#xff0c;现想进行插件开发&#xff0c;根据安装指南安装SuperMap.Tools.RegisterTemplate.exe&#xff0c;运行多次均失败 【问题原因】该脚本是之前老版本针对VS2010写的&…

AOF文件重写

1.2.3.AOF文件重写 因为是记录命令&#xff0c;AOF文件会比RDB文件大的多。而且AOF会记录对同一个key的多次写操作&#xff0c;但只有最后一次写操作才有意义。通过执行bgrewriteaof命令&#xff0c;可以让AOF文件执行重写功能&#xff0c;用最少的命令达到相同效果。 如图&am…

穿越代码之海:探寻结构体深层逻辑,展望未来应用新天地

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 结构体作为一种数据结构&#xff0c;其定义和特点决定了它在各种应用中的广泛适用性。随着科技的进步和新兴行业的不断涌现&#xf…

C语言—每日选择题—Day68

第一题 1、运行以下C语言代码&#xff0c;输出的结果是&#xff08;&#xff09; #include <stdio.h> int main() {char *str[3] {"stra", "strb", "strc"};char *p str[0];int i 0;while(i < 3){printf("%s ",p);i;} retur…

【Gem5】获取构建教程

gem5-tutorial-hpca-2023 1 介绍 1.1 Gem5是什么1.2 Gem5可以用来做什么1.3 获取并构建gem5 gem5-tutorial-hpca-2023 打开网址&#xff1a; github 创建教程代码空空间 “Code” -> “Codespaces” -> “Create Codespace on master” GitHub Codespaces 是一个由…

Java Swing游戏开发学习23

内容来自RyiSnow视频讲解 这一节讲的是Character Status角色状态或属性。 前言 这一节讲的是实现角色状态或属性的显示&#xff0c;就有点像RPG游戏中&#xff0c;人物属性显示的面板&#xff0c;其中有玩家的装备、玩家的等级&#xff0c;各种防御值、闪避值、跑速什么的。…

探索进程控制第一弹(进程终止、进程等待)

文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么&#xff1f;进程终止的情况代码跑完&#xff0c;结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…

Vue3_2024_7天【回顾上篇watch常见的后两种场景】___续

Vue3中监听多条数据的两种使用 1.watch【使用上一章写法&#xff0c;监听两个属性&#xff0c;然后执行相应操作…】 2.watchEffect【相对于使用watch&#xff0c;watchEffect默认页面初始加载&#xff0c;有点类似加配置&#xff1a;立即执行 immediate】 代码&#xff1a; …

单链表专题

文章目录 目录1. 链表的概念及结构2. 实现单链表2.1 链表的打印2.2 链表的尾插2.3 链表的头插2.4 链表的尾删2.5 链表的头删2.6 查找2.7 在指定位置之前插入数据2.8 在指定位置之后插入数据2.9 删除pos节点2.10 删除pos之后的节点2.11 销毁链表 3. 链表的分类 目录 链表的概念…

Qt小案例

工程概述 MainWindows 还是 Widget 在 Qt 中&#xff0c;创建 "MainWindow" 与 "Widget" 项目的主要区别在于他们的用途和功能范围&#xff1a; 1. MainWindow &#xff1a;这是一个包含完整菜单栏、工具栏和状态栏的主窗口应用程序框架。它适合于更…