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

Google Maps信息框与名称列表开发遇重复问题,JSON已验证有效

嘿,我来帮你捋捋这个列表重复的问题!既然JSON没问题、JSLint也通过了,那大概率是标记点(markers)或信息窗口(infoWindows)数组的逻辑重复填充导致的,结合你给的代码片段,我整理几个常见的排查方向:

  • 先检查数组初始化与填充逻辑:
    你定义了全局的arrMarkers和arrInfoWindows,要确认是不是在initMap或者数据加载的函数里,每次执行都没有先清空数组就直接push新内容。比如如果有加载外部数据的逻辑,每次调用加载方法前要先执行arrMarkers = []和arrInfoWindows = [],把旧数据清空,避免新旧数据叠加。另外也要排查循环逻辑,有没有嵌套错误或者重复遍历了同一组数据。

  • 再看列表的渲染逻辑:
    如果你是基于arrMarkers来生成名称列表的,要确认渲染列表时是不是没有先清空原有DOM内容就直接追加。比如别用innerHTML +=这种写法,改成先把列表容器的innerHTML设为空,再重新遍历数组生成新的列表项,这样就不会出现重复内容了。

  • 最后检查事件绑定的重复触发:
    有没有给地图的idle、bounds_changed这类事件重复绑定了数据加载函数?比如每次地图初始化或者视角变化都重新加载一遍数据,导致数组被重复填充。可以用google.maps.event.clearListeners(map, '事件名')先清除旧的监听,再绑定新的,或者确保监听只绑定一次。

附上你提供的代码片段方便对照:

<script type="text/javascript"> 
var map; 
var arrMarkers = []; 
var arrInfoWindows = []; 
function initMap(){ 
  var centerCoord = new google.maps.LatLng(48.058249, -122.288615); 
  var mapOptions = { 
    zoom: 12, 
    center: centerCoord, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
  }; 
  map = new google.maps.Map(document....
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:01:26