您现在的位置是:首页 >技术杂谈 >Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)网站首页技术杂谈

Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)

QC班长 2024-10-29 00:01:06
简介Echarts的地图实现拖拽缩放同步功能(解决多层geo缩放、拖动卡顿问题)

项目场景:

大屏项目显示云南省3D的地图,可拖拽缩放、地图打点、点击图标弹框等等功能


 

问题描述

多图层拖拽时会上下层会分离,延迟卡顿


原因分析:

1、拖拽时不同图层的中心坐标没有保持一致,

2、卡顿是数据更新动画时长过长。


解决方案:

1、监听捕捉图层的roam事件,使下层的图层和上层的图层中心坐标保持一致

2、添加减少延迟的属性animationDurationUpdate:0

核心代码部分:

animationDurationUpdate:0,//实现缩放、拖动同步且不卡顿
roam: true,//是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启

 

//捕捉geo roam事件,使下层的geo随着上层的geo一起实现缩放拖曳
    chartController.current.on('georoam',(params:any)=>{
      const option = chartController.current.getOption();//获得option对象
      if(params.zoom != null){ //捕捉到缩放时
        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一起改变
      }
      chartController.current.setOption(option);//设置option
    })

 画框的这两块代码就是核心部分了。完整案例代码:详见https://download.csdn.net/download/qq_35624642/87905189

参考文献:

0、Documentation - Apache ECharts

1、Echarts多层geo实现缩放、拖动同步且不卡顿!!和不同窗口尺寸始终保持立体效果_echarts同步缩放怎么做_就深咖啡色的博客-CSDN博客

2、echarts 设置地图外边框以及多个geo实现缩放拖曳同步_echarts地图外轮廓描边_铃兰丶物语的博客-CSDN博客 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。