在使用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;
}