工作中,需要根据地图的缩放,更改marker的大小。比如,地图越缩小,marker必须变小,以防重叠到一堆。
搜索了很多文章,都没有提高如何修改marker大小的。后面在高德api文档里发现了秘籍:
或者向已创建好的 Marker 添加 Icon:
marker.setIcon(icon);
于是我通过以下方式重置了marker:
const newIcon = new AMap.Icon({
size: new AMap.Size(52, 26), // 图标尺寸
image: !marker.vehicle.idle ? iconCar : iconCarGray, // Icon的图像
imageSize: iconMeta.size, // 根据所设置的大小拉伸或压缩图片
})
marker.setIcon(newIcon)
实现了我的目标。
核心API :
marker.setIcon(icon)
增加:
当marker缩小后,对应的offset还是原来的,这个时候marker会向左上偏移更多,所以,此时还应该调用marker.setOffset()
方法重置offset。