echarts地图立体效果,echarts地图点击事件,echarts地图自定义自定义tooltip
一.地图立体效果
方法1:两层地图叠加

实现原理:geo数组中放入两个地图对象,通过修改zlevel属性以及top,left,right,bottom形成视觉差
配置项参考如下代码:
geo: [{zlevel: 2,top: 96,map: 'map',itemStyle: {color: '#091A51ee',opacity: 1,borderWidth: 2,borderColor: '#16BAFA'},label: {show: true,position: 'top',color: '#fff',fontSize: 14,lineHeight: 16,fontWeight: 'bold',textShadowColor: '#073BDA', // 阴影颜色textShadowBlur: 10, // 阴影模糊程度textShadowOffsetX: 0, // 阴影横向偏移textShadowOffsetY: 4, // 阴影纵向偏移formatter: function({ name }) {return ` ${name}`}},emphasis: {disabled: true, //是否可以被选中label: {show: true,color: '#fff',fontSize: 18,textShadowColor: '',textShadowBlur: 0, // 阴影模糊程度textShadowOffsetX: 0, // 阴影横向偏移textShadowOffsetY: 0 // 阴影纵向偏移},itemStyle: {color: '#01A8F1'}}},{zlevel: 1,map: 'map',itemStyle: {color: '#17418B',opacity: 1,borderWidth: 2,borderColor: '#17418B'},label: {show: false},emphasis: {disabled: false, // 是否可以被选中itemStyle: {color: '#01A8F1'}}}]
方法二:通过echarts-gl实现3d效果

1.需要引入echarts-gl.js文件或者npm下载
2.此方法地图省份的点击事件不生效!!!
3.省份名称需要通过下面代码才能显示出来
formatter: function ({ name }) {
return ` ${name}`
}
配置项完整代码如下:
geo3D: {map: "map",roam: true,shading: "color",boxHeight: 100,regionHeight: 8,itemStyle: {color: "#163C99",opacity: 0.4,borderWidth: 1,borderColor: "#0EF6FA"},emphasis: {disabled: true, //是否可以被选中label: {//移入时的高亮文本show: true,color: "#000", //显示字体颜色变淡fontSize: 18 //显示字体变大}},label: {show: true,position: "top",color: "#fff",fontSize: 14,lineHeight: 16,formatter: function ({ name }) {return ` ${name}`}},light: {//光照阴影main: {color: "#032372", //光照颜色intensity: 0.1, //光照强度 //shadowQuality: 'high', //阴影亮度shadow: true, //是否显示阴影shadowQuality: "medium", //阴影质量 ultra //阴影亮度alpha: 80,beta: 0,ambientCubemap: 0.5},ambient: {intensity: 1,color: "#133995" //光照颜色}},viewControl: {beta: 0, //x轴旋转alpha: 75, //Y轴旋转panMouseButton: "center", //平移操作使用的鼠标按键rotateMouseButton: "left", //旋转操作使用的鼠标按键rotateSensitivity: 0, //禁止旋转地图//下面的四个参数 可以实现禁止缩放地图projection: "orthographic",orthographicSize: 110,maxOrthographicSize: 110,minOrthographicSize: 110}}//如果要选中/激活高亮某个省份
function setProvince(e) {let option = mapChartInstance.getOption()option.geo3D[0].regions = [{name: e,itemStyle: {color: "#0cf4f9",opacity: 1}}]mapChartInstance.setOption(option)}
二.地图点击事件
//this.mapChart替换成对应的echarts实例
this.mapChart.on('click', (e) => {this.setProvince(e.name)
})
三.自定义tooltip

实现原理:
tooltip和地图的div容器宽高一致,tooltip中要自定义显示的内容相对于tooltip定位,然后通过echarts提供的convertToPixel()方法计算出自定义显示内容的相对位置
html
<div class="top_content"><div class="map_chart" id="map_chart"></div><div class="map-tooltip"><div class="in u-flex-col u-row-center " :style="curMapData"><div>{{ current_province.name }}:</div><div class="u-m-t-15"><span>{{ total }}</span> 家合作企业</div></div></div>
</div>
js
const properties = mapJson.features.find(item => item.properties.name.includes(name)).properties
const cp = properties.cp || properties.center
this.curMapData = this.showTooltipAtCoords(cp)showTooltipAtCoords(cp) { // 经纬度转换position位置const lng = cp[0]const lat = cp[1]const point = this.mapChart.convertToPixel('geo', [lng, lat])const left = `${point[0]}px` // 设置位置const top = `${point[1] - 90}px` // 设置位置return `left:${left} ;top:${top}`
},
相关文章:
echarts地图立体效果,echarts地图点击事件,echarts地图自定义自定义tooltip
一.地图立体效果 方法1:两层地图叠加 实现原理:geo数组中放入两个地图对象,通过修改zlevel属性以及top,left,right,bottom形成视觉差 配置项参考如下代码: geo: [{zlevel: 2,top: 96,map: map,itemStyle: {color: #091A51ee,opacity: 1,borderWidth: 2,borderColor: #16BAFA…...
什么是 Socket?
Socket(套接字)是计算机网络编程中的一个重要概念,它用于在不同计算机之间进行通信。Socket 提供了一种机制,使得应用程序可以通过网络发送和接收数据。Socket 通信通常基于 TCP/IP 协议,但也可以使用其他协议…...
【版本控制】SVN安装到使用一条路讲解
文章目录 安装使用 Subversion (SVN) 是一款集中式版本控制系统,广泛应用于团队协作和代码管理中。尽管随着 Git 的兴起,集中式版本控制逐渐被分布式工具取代,但 SVN 仍在许多企业项目中发挥着重要作用。它的简单、稳定和易用特性,…...
KVCKVO
KVC KVC意思是键值编码,是一种可以通过键名来访问对象属性的机制,也可以对属性进行赋值,包括私有属性,由于KVC的定义是对OC中的NSObject的扩展进行实现的,所以如果要使用KVC机制,那么这个类需要继承NSObje…...
PyQt设计界面优化 #qss #ui设计 #QMainWindow
思维导图 通过qss实现ui界面设计优化 Qss是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,它是用来美化UI界面。实现界面和程序的分离,快速切换界面。 首先我们在Pytchram创建一个新目录 然后将我们所需要的图片打…...
Qt Serial Bus 前置介绍篇
文章目录 Qt Serial Bus 简介前言 什么是 Qt Serial Bus?Qt Serial Bus 的核心功能支持的协议1. **CAN 总线**2. **Modbus**3. **自定义协议** 应用场景优势总结 Qt Serial Bus 简介 前言 Qt Serial Bus 是 Qt 框架中的一个模块,用于与工业设备和嵌入式…...
12.2深度学习_项目实战
十、项目实战 鲍勃开了自己的手机公司。他想与苹果、三星等大公司展开硬仗。 他不知道如何估算自己公司生产的手机的价格。在这个竞争激烈的手机市场,你不能简单地假设事情。为了解决这个问题,他收集了各个公司的手机销售数据。 鲍勃想找出手机的特性(例…...
LeetCode 64. 最小路径和(HOT100)
第一次错误代码: class Solution { public:int minPathSum(vector<vector<int>>& grid) {int dp[205][205] {0};int m grid.size(),n grid[0].size();for(int i 1 ;i<m;i){for(int j 1;j<n;j){dp[i][j] min(dp[i][j-1],dp[i-1][j])gr…...
ESP8266作为TCP客户端或者服务器使用
ESP8266模块,STA模式(与手机搭建TCP通讯,EPS8266为服务端)_esp8266作为station-CSDN博客 ESP8266模块,STA模式(与电脑搭建TCP通讯,ESP8266 为客户端)_esp8266 sta 连接tcp-CSDN博客…...
C#结合.NET框架快速构建和部署AI应用
在人工智能(AI)的浪潮中,C#作为一种功能强大且类型安全的编程语言,为AI工程开发提供了坚实的基础。C#结合.NET框架,使得开发者能够快速构建和部署AI应用。本文将通过一个简单的实例,展示如何使用C#进行AI工…...
题外话 (火影密令)
哥们! 玩火影不! 村里人全部评论! 不评论的忍战李全保底! 哥们! 密令领了不! “1219村里人集合”领了吗! 100金币! 哥们! 我粉丝没人能上影! 老舅说的…...
蓝桥杯准备训练(lesson1,c++方向)
前言 报名参加了蓝桥杯(c)方向的宝子们,今天我将与大家一起努力参赛,后序会与大家分享我的学习情况,我将从最基础的内容开始学习,带大家打好基础,在每节课后都会有练习题,刚开始的练…...
RTDETR融合[ECCV2024]WTConvNeXt中的WTConv模块及相关改进思路
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Wavelet Convolutions for Large Receptive Fields》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2407.05848 代码链接:https://github.com/BGU-CS…...
AD7606使用方法
AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电,真双极性模拟输入可以选择10 V,5 V两种量程。支持串口与并口两种读取方式。 硬件连接方式: 配置引脚 引脚功能 详细说明 OS2 OS1 OS2 过采样率配置 000 1倍过采样率 …...
嵌入式系统应用-LVGL的应用-平衡球游戏 part1
平衡球游戏 part1 1 平衡球游戏的界面设计2 界面设计2.1 背景设计2.2 球的设计2.3 移动球的坐标2.4 用鼠标移动这个球2.5 增加边框规则2.6 效果图2.7 游戏失败重启游戏 3 为小球增加增加动画效果3.1 增加移动效果代码3.2 具体效果图片 平衡球游戏 part2 第二部分文章在这里 1 …...
JVM(四) - JVM 内存结构
目录 一、程序计数器 1.1 作用 1.2 概述 二、虚拟机栈 2.1 概述 2.2 栈的存储单位 2.3 栈运行原理 2.4 栈帧的内部结构 2.4.1. 局部变量表 槽 Slot 2.4.2. 操作数栈 概述 栈顶缓存(Top-of-stack-Cashing) 2.4.3. 动态链接(指向…...
【AI系统】CANN 算子类型
CANN 算子类型 算子是编程和数学中的重要概念,它们是用于执行特定操作的符号或函数,以便处理输入值并生成输出值。本文将会介绍 CANN 算子类型及其在 AI 编程和神经网络中的应用,以及华为 CANN 算子在 AI CPU 的详细架构和开发要求。 算子基…...
VUE脚手架练习
脚手架安装的问题: 1.安装node.js,配置环境变量,cmd输入node -v和npm -v可以看到版本号(如果显示不是命令,确认环境变量是否配置成功,记得配置环境变量之后重新打开cmd,再去验证) 2.在安装cnmp时…...
动态艺术:用Python将文字融入GIF动画
文章内容: 在数字媒体的多样化发展中,GIF动画作为一种流行的表达形式,常被用于广告、社交媒体和娱乐。本文通过一个具体的Python编程示例,展示了如何将文字以动态形式融入到GIF动画中,创造出具有视觉冲击力的动态艺术…...
更多开源创新 挑战OpenAI-o1的模型出现和AI个体模拟突破
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
