百度地图缩小后图标定位不准,BMap.Marker打点坐标发生偏移

问题

百度地图放大时,图标定位正确
将百度地图缩小时,图标定位偏差较大
下图左为缩小后打点偏移:
在这里插入图片描述

问题代码

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 时,仍有偏差,调小一些即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值