问题
百度地图放大时,图标定位正确
将百度地图缩小时,图标定位偏差较大
下图左为缩小后打点偏移:
问题代码
let markerIconWidth = 48; // 定位图标的大小,此处图标宽高相等
let marker = new BMap.Marker(itemPoint);
let myIcon = new BMap.Icon(positionIcon, new BMap.Size(markerIconWidth, markerIconWidth));
myIcon.setImageSize(new BMap.Size(markerIconWidth, markerIconWidth));
marker.setIcon(myIcon);
解决方案
- 将 高度 设置为图标高度 + 2
- 将 anchor的宽度 设置为图标宽度的一半
let markerIconWidth = 48; // 定位图标的大小,此处图标宽高相等
let marker = new BMap.Marker(itemPoint);
let myIcon = new BMap.Icon(
positionIcon,
new BMap.Size(markerIconWidth, markerIconWidth + 2),
{
anchor: new BMap.Size(markerIconWidth / 2, markerIconWidth)
}
);
myIcon.setImageSize(new BMap.Size(markerIconWidth, markerIconWidth));
marker.setIcon(myIcon);
备注
图标宽度 markerIconWidth 设置为 80 时,仍有偏差,调小一些即可