echarts 3d地图 实现多个geo层缩放拖拽同步且不卡顿

news/2025/1/17 14:10:59/

效果:

 主要代码:

原理:监听捕获放大缩小动作,设置下层geo的zoom,center为顶层的zoom,center。

标记点大小是计算放大缩小倍数,重设值图标大小。

注意:最后所有层记得加上 animationDurationUpdate:0, 不然会有同步延迟和卡顿

myChart.on("georoam", function(params) {var option = myChart.getOption(); //获得option对象if (params.zoom != null && params.zoom != undefined) {//捕捉到缩放时let mo = option.geo[0].zoomoption.geo[0].zoom = option.series[0].zoom; //下层geo的缩放等级跟着上层的geo一起改变option.geo[0].center = option.series[0].center; //下层的geo的中心位置随着上层geo一起改变// 改变标记点随地图放大缩小// console.log(option.series)let size = option.series[0].zoom/moif(option.series[0].zoom>mo){// console.log(option.series)option.series[2].symbolSize = [option.series[2].symbolSize[0]*size,option.series[2].symbolSize[1]*size]option.series[1].symbolSize=option.series[1].symbolSize*sizeoption.series[1].label.fontSize=option.series[1].label.fontSize*size}else{option.series[2].symbolSize = [option.series[2].symbolSize[0]*size,option.series[2].symbolSize[1]*size]option.series[1].symbolSize = option.series[1].symbolSize*sizeoption.series[1].label.fontSize = option.series[1].label.fontSize*size}// 改变标记点end} else {//捕捉到拖曳时option.geo[0].center = option.series[0].center; //下层的geo的中心位置随着上层geo一起改变}// myChart.dispatchAction({ //来用程序主动渲染选框// 	type: "restore",// });myChart.setOption(option); //设置option});

animationDurationUpdate:0, //数据更新动画的时长。

 主要是记录下,所以这里就只放了比较关键的代码段

扩展:

以上代码是针对我当前项目配置的,以下是缩放移动同步的主要代码:

myChart.on("georoam", function(params) {var option = myChart.getOption(); //获得option对象if (params.zoom != null && params.zoom != undefined) {//捕捉到缩放时option.geo[0].zoom = option.series[0].zoom; //下层geo的缩放等级跟着上层的geo一起改变option.geo[0].center = option.series[0].center; //下层的geo的中心位置随着上层geo一起改变} else {//捕捉到拖曳时option.geo[0].center = option.series[0].center; //下层的geo的中心位置随着上层geo一起改变}// myChart.dispatchAction({ //来用程序主动渲染选框// 	type: "restore",// });myChart.setOption(option); //设置option});

echarts配置项对应:


http://www.ppmy.cn/news/337540.html

相关文章

Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

一、问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下。 // Cesium加载wms var wms new Cesium.WebMapServiceImageryProvider({url: ,layers: ,//图层名称,或者:工作区:图层名par…

外设驱动库开发笔记52:PM3003S激光粉尘仪驱动

空气质量是现代日常生活中人们所关注的事情,也是生存环境好坏的一种体现。其中粉尘数量监测更是空气质量检测中最常见的对象,在我们的检测设备中也经常会有这种需求。检测手段也是多种多样,这一篇中,我们就来讨论使用PM3003S 激光…

【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】

目录 1、Linux内核输入子系统概念导入1.1 输入设备工作机制1.2 运行框架1.3 分层思想 2、驱动开发步骤2.1 在init()或probe()函数中2.2 在exit()或remove()函数中:2.3 上报事件2.4 input驱动要素导图2.5 input驱动的总…

基于GeoTools的GeoJson导入到PostGis实战

GeoJson是一种对各种地理数据结构进行编码的格式,基于json的地理空间信息数据交换格式。GeoJson对象可以用来表示几何,特征或者特征集合。支持地理点、线、面、多点、多线、多面及几何集合。GeoJson不是本文的重点,因此不再赘述。 PostGIS是在…

大疆 RoboMaster 3508/2006/GM6020 电机使用教程

19年开始使用大疆的电机,刚开始接触有很多东西不懂,网上除了RM官网提供的一些资料外没有很多其他的资料,现在使用大疆电机近一年了,想分享一下自己的经验。 1.硬件部分 1.C610电调只能连接M2006电机,C620电调连接M35…

【3d地图】vue中使用echarts geo3D

文章目录 前言一、echarts是什么?二、使用步骤1.引入echarts库,3d地图必须安装echarts-gl依赖2.制作地图JSON文件2.1 制作自己的json 3.引入到vue组件中4.创建一个有固定宽高大小的div元素5.配置echarts参数6.挂载到mounted钩子,并且组件销毁…

【超详细】基于大疆RoboMaster开发板C型的BMI088数据读取

【超详细】基于大疆RoboMaster开发板C型的BMI088数据读取 这里以博世传感器公司产出的BMI088型号的IMU为例,其里面有3轴高精度加速度计和3轴高精度陀螺仪,其他的特性不再介绍 同时这里的IMU是安装在大疆公司出产的RoboMaster开发板C型,单片机…

RK3588平台开发系列讲解(USB篇)USB Device端口组合配置过程

文章目录 一、configfs二、configfs 配置过程2.1、使能相关的宏2.2、挂载configfs2.3、创建名为g1的usb复合设备2.4、配置PID和VID2.5、创建并配置strings子目录2.6、创建configuration和字符串2.7、创建functions2.8、将functions和configuration关联起来2.9、绑定到UDC,使能…