在使用dataV加载地图的时候,使用到地图点击事件之后发现点击之后的坐标点始终有偏移,在另一个项目中没有使用dataV却可以正常使用,考虑到dataV全屏的机制,是因为transform的原因。
解决办法:
找到node_modules下面的目录,修改代码,代码我贴在下面(
这也是导致地图取不到pick的原因
)
function getPosition(screenSpaceEventHandler, event, result) {
var element = screenSpaceEventHandler._element;
// const element = screenSpaceEventHandler._element;
if (element === document) {
result.x = event.clientX;
result.y = event.clientY;
return result;
}
var fa = element.offsetWidth/element.getBoundingClientRect().width;//计算缩放值
const rect = element.getBoundingClientRect();
result.x = (event.clientX - rect.left)*fa;//做差之后乘以缩放值就可以实现正常效果
result.y = (event.clientY - rect.top)*fa;
return result;
}
版权声明:本文为song766426原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。