PathSimplifier轨迹偏移,高德地图你答应我,css用定位一定要写上left和top好吗

75 阅读1分钟

今天在vue项目中高德地图jsapi中AMapUI组件中的PathSimplifier绘制轨迹。 官方: chrome_Yq68VaG6Ug.png 我的: chrome_wXx6MTjvib.png 两者唯一的区别就是,我的是在vue项目中运行的(官方代码在vue中轨迹对应的交通工具图标会加载失败,所以我去掉了导航代码,不影响整体功能),很明显发现我的轨迹是偏移了。我百度、问ai助手,给出来的答复什么坐标系问题,什么中心点没设置的问题......都是在说废话。

我又将示例代码复制到html文件,使用openlive打开

Code_S2Ax2hySbP.png

chrome_3GZ35I87wA.png 发现一切又都是正常的,当时我是一头雾水。试了很多都是无功而返。

最后我打开调试工具看看dom节点给我发现了一点线索

chrome_gUXlbIsFw0.png 然后我对比了一下功能完好的:

chrome_kDM8xwKgXL.png

对比发现节点的宽度是一样的,但是我的好像向右移动了一半,在仔细观察右边的style属性,发现是用了绝对定位,然后添加了left:0之后就恢复正常了。 对应的在vue项目中:

::v-deep(.base-canvas) {
  left: 0 !important;
  top: 0 !important;
}
::v-deep(.naviline-canvas) {
  left: 0 !important;
  top: 0 !important;
}
::v-deep(.navipoint-canvas) {
  left: 0 !important;
  top: 0 !important;
}

chrome_VCVbXVLYQJ.gif 知道原因后我真的绷不住了。想到了一开始学习css的时候,教的人有提示我们用定位的一定要写上left,top。虽然有默认值但是最好还是写上避免出现问题,现在我才深有感触。