yangyanggu / vue-amap

高德地图封装 for vue2 vue3.0
https://vue-amap.guyixi.cn/
MIT License
287 stars 17 forks source link

动态设置pitchEnable不起作用、设置rotation/pitch值后地图仅运动一帧 #98

Closed PeterZhenhh closed 1 month ago

PeterZhenhh commented 1 month ago

使用版本

请填写使用版本:2.1.6

问题描述

动态设置pitchEnable不起作用,但rotateEnable是可以的。 地图初始化后,先通过鼠标右键旋转和调整俯仰角度,再设置rotation/pitch值,地图仅运动一帧后就停止 地图初始化后,仅通过鼠标右键调整俯仰角度,再设置pitch值,地图正常运动到设置的俯仰角度

示例

yangyanggu commented 1 month ago

的确是个BUG,组件漏掉了对pitchEnable的动态处理,我会修复下发个新版本

yangyanggu commented 1 month ago

已经发布到 2.1.7 版本

PeterZhenhh commented 1 month ago

感谢大大修复pitchEnable的问题。但是点击示例中“测试”后,地图仍无法运动到设置的rotation和pitch,请问如何解决 示例

yangyanggu commented 1 month ago

这个是由于你把pitch跟rotate的v-model取消了,取消后,组件内外数据不同步的话,原本就是0,就再次修改为0,不会触发更新,你试试我这个 示例

PeterZhenhh commented 1 month ago

还是存在这个问题:先通过鼠标右键旋转地图,再点击“测试”设置rotation/pitch值,地图仅运动一帧后就停止

奇怪的是,在多次点击“测试”,使地图一帧一帧地旋转到rot的设定值后,地图可以顺利播放动画,展示pitch为设定值的状态

示例

yangyanggu commented 1 month ago

示例使用的cdn有缓存的,你需要手动把左上角的版本号切换成2.1.7才行

PeterZhenhh commented 1 month ago

已经手动切换为2.1.7,地图仅旋转运动一帧后就停止的问题仍存在

yangyanggu commented 1 month ago

我测试是没什么问题,如果实在有问题,你把设置pitchEnable=false的那段代码加一个setTimeout处理吧

PeterZhenhh commented 1 month ago

https://github.com/user-attachments/assets/e48c56e5-0efe-49bf-8cac-336b1c3c3034

问题如视频里演示的,即使不改变pitchEnable和rotateEnable,也会出现只能通过多次点击才旋转到位的情况

yangyanggu commented 1 month ago

的确有这个问题,应该是v-model导致冲突了,你使用原生实现这块吧 示例

PeterZhenhh commented 1 month ago

好的 等待进一步修复 目前先用原生方法代替 再次感谢!

yangyanggu commented 1 month ago

用2.1.8吧,我把这块逻辑优化了下,现在应该正常了

PeterZhenhh commented 1 month ago

https://github.com/user-attachments/assets/8e7abea0-5cc5-4c28-a7d4-83797bfbba04

感谢!在基本图层下已经没什么问题了,但在叠加其它图层后,会出现需要多调整几次俯仰角度才能正常的情况。旋转没发现有这个问题。 示例

yangyanggu commented 1 month ago

这个纯粹是你现在使用的这个区划聚合插件引起的,它会阻止地图的事件冒泡,导致无法触发v-model,你试试其他图层就知道了,如果你实在需要使用这个图层,那么还是用原生的吧 示例

PeterZhenhh commented 1 month ago

好的,感谢大佬一整天的解答和修复,我先用原生实现!