谷歌地图示例-标记显示/隐藏未立即反映在地图上

时间:2018-09-09 17:08:06

标签: javascript google-maps google-maps-api-3 google-maps-markers

我正在从Google网站调试原始示例: https://developers.google.com/maps/documentation/javascript/examples/marker-remove#try-it-yourself

JSFiddle在这里可用:https://jsfiddle.net/esxq8agk/

此处的屏幕截图:https://imgur.com/2JJERhr

现在我设置2个断点:

'setMapOnAll(null)' line 108 

'setMapOnAll(map)' line 113

然后,我使用Google Chrome菜单->更多工具->开发人员工具开始调试。在“隐藏标记”上,单击和“跨下一个函数调用”更改会立即反映在地图上-红色标记从地图上消失。

单击“显示标记”并单击“跳过下一个函数调用”,则什么也没有发生。我可以长时间单击“全部跳过下一个功能”,但仍然没有任何反应。当我单击“恢复脚本执行”时,仅显示红色标记。

这是一个错误吗?这种行为有什么解释吗?

1 个答案:

答案 0 :(得分:0)

这个问题没有得到任何关注,也没有积极的反馈。无论如何,我设法对其进行了破解。只需增加执行之间的延迟

setMapOnAll(map) 

setMapOnAll(null)

下面是JSFiddle和代码段:https://jsfiddle.net/esxq8agk/28/

function removeNews() {
  setMapOnAll(newMarkers, null);
}

function showNew() {
  setMapOnAll(newMarkers, map);
  setTimeout(removeOlds, 50);
}

function removeOlds() {
  setMapOnAll(oldMarkers, null);
}
function showOld() {
  setMapOnAll(oldMarkers, map);
  setTimeout(removeNews, 50);
}

function setMapOnAll(set, map) {
  for (var i = 0; i < set.length; i++) {
    set[i].setMap(map);
  }
}