You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps标记位置偏移求助:如何让标记显示在正确坐标点?

解决Google地图标记位置偏移的问题

看起来你的标记没对准蓝色叉号,大概率是两个小问题导致的,咱们一步步来修复:

1. 先修复代码里的语法错误

你定义的markers数组里多了一个多余的逗号:

var markers = [ ['Wandsworth Town Library', 51.4562217,-0.1932119,'library.png'],, ];

这个逗号会让数组里多一个undefined元素,虽然不会直接导致位置偏移,但可能引发其他潜在问题,先把它删掉,改成:

var markers = [ ['Wandsworth Town Library', 51.4562217,-0.1932119,'library.png'] ];

2. 为自定义图标设置锚点(核心解决位置偏移)

这是标记偏离蓝色叉号的最可能原因:Google地图默认标记的锚点是图标底部中间,但你用了自定义的library.png,如果没指定锚点,地图会默认把图标的左上角作为锚点,导致标记显示位置和实际经纬度偏移。

修改创建Marker的代码,添加图标锚点配置:

marker = new google.maps.Marker({
  position: position,
  map: map,
  title: markers[i][0],
  icon: {
    url: iconBase + markers[i][3],
    // 根据你的图标尺寸调整数值:x是图标的宽度一半,y是图标的总高度
    // 示例:如果图标是32x32像素,锚点设为(16, 32)
    anchor: new google.maps.Point(16, 32)
  }
});

你需要根据library.png的实际尺寸调整anchor数值,比如图标是24x24,就改成new google.maps.Point(12, 24),确保锚点落在图标的底部中间,这样标记就会精准对准你右键获取的蓝色叉号位置了。

额外检查:确认坐标是否正确

最后再核对一遍你复制的经纬度:右键“What's Here?”得到的蓝色叉号坐标,有没有把纬度(lat)和经度(lng)搞反?Google Maps的LatLng是纬度在前、经度在后,你的代码里顺序是对的,但再确认一遍更稳妥。

内容的提问来源于stack exchange,提问作者Naz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:40:23