echart的地图设置roam后,geo和series,拖拽和放缩会造成不同步(移动端设备)

随笔9个月前发布 一叶一菩提
136 0 0

因为地图阴影是geo,地图色块区域是series,拖拽和放缩会造成不同步,要设置到同步

  //因为地图阴影是geo,地图色块区域是series,拖拽和放缩会造成不同步,要设置到同步
  let lastZoom = 1 // 初始缩放比例
  let lastCenter = [0, 0] // 初始中心点
  myChart.value.on('georoam', (params: any) => {
    let myOption: any = myChart.value!.getOption()
    if (params.zoom != null) {
      //捕捉到缩放时
      myOption.geo.zoom = lastZoom = params.zoom
      myOption.geo.center = lastCenter = params.origin
    } else if (params.action === 'drag') {
      //捕捉到拖曳时
      let newCenter = [
        lastCenter[0] - params.dx / 2 / lastZoom, // 根据拖拽位移和缩放比例计算新的中心点
        lastCenter[1] + params.dy / 2 / lastZoom
      ]
      myOption.geo.center = newCenter
    }
    myChart.value!.setOption(myOption)
  })
}

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...