今天在vue项目中高德地图jsapi中AMapUI组件中的PathSimplifier绘制轨迹。
官方:
我的:
两者唯一的区别就是,我的是在vue项目中运行的(官方代码在vue中轨迹对应的交通工具图标会加载失败,所以我去掉了导航代码,不影响整体功能),很明显发现我的轨迹是偏移了。我百度、问ai助手,给出来的答复什么坐标系问题,什么中心点没设置的问题......都是在说废话。
我又将示例代码复制到html文件,使用openlive打开
发现一切又都是正常的,当时我是一头雾水。试了很多都是无功而返。
最后我打开调试工具看看dom节点给我发现了一点线索
然后我对比了一下功能完好的:
对比发现节点的宽度是一样的,但是我的好像向右移动了一半,在仔细观察右边的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;
}
知道原因后我真的绷不住了。想到了一开始学习css的时候,教的人有提示我们用定位的一定要写上left,top。虽然有默认值但是最好还是写上避免出现问题,现在我才深有感触。