Echarts 地图开启缩放及拖动后中心点偏移的解决办法

// 切换地图的时候将 center 属性设置为 undefined

option.geo.center = undefined

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
在 `echarts` 的地图中,如果使用了 `geo` 组件进行地图展示,并且在地图上添加了散点图,当地图进行缩放时,散点图的位置可能会出现偏移。这是因为 `geo` 组件的缩放是通过控制 `zoom` 属性来实现的,而散点图的位置是通过经纬度来确定的,当缩放比例发生变化时,散点图的位置也需要进行相应的调整。可以通过以下的方式来解决这个问题: 1. 在 `geo` 组件中设置 `label` 属性,并将 `label` 的 `offset` 属性设为 `[-10, -10]`,这样可以让地图上的标签位置发生偏移,避免与散点图重叠。 ``` geo: { map: 'world', label: { show: true, position: 'right', formatter: '{b}', offset: [-10, -10] // 地图标签偏移 }, ... } ``` 2. 在散点图的 `data` 中,使用 `geo` 组件的 `pointToData` 方法将经纬度坐标转换为像素坐标,并将像素坐标保存在散点图的 `coord` 属性中。 ``` series: [{ type: 'scatter', coordinateSystem: 'geo', data: [ { name: '北京', value: geoCoordToPixel([116.46, 39.92]) // 将经纬度坐标转换为像素坐标 }, ... ] }] function geoCoordToPixel(coord) { return chart.getModel().getComponent('geo').coordinateSystem.dataToPoint(coord); } ``` 3. 在散点图的 `symbolOffset` 属性中,使用 `coord` 属性来设置散点的位置,这样散点图就可以根据地图缩放比例自动调整位置。 ``` series: [{ type: 'scatter', coordinateSystem: 'geo', data: [ { name: '北京', value: geoCoordToPixel([116.46, 39.92]), coord: [116.46, 39.92] // 经纬度坐标 }, ... ], symbolSize: 10, symbolOffset: [0, 0], // 不需要偏移 ... }] ``` 通过以上的设置,就可以实现在地图缩放时,散点图的位置自动跟随调整。需要注意的是,散点图的 `symbolOffset` 属性不需要再设置偏移量了,因为散点图的位置已经通过 `coord` 属性确定了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值