4

如何将其移植到 v3?removeOverlay 不包含在 v3 中。

if( mapElements[lMapElementIndex]['marker'] != 0 ){
  //map.removeOverlay(mapElements[lMapElementIndex]['marker']); V2
}

V3?

if( mapElements[lMapElementIndex]['marker'] != 0 ){
  //map.removeOverlay(mapElements[lMapElementIndex]['marker']);
  mapElements(mapElements[lMapElementIndex]['marker']).setMap(null);
} //but throws an error mapElements is not a function
4

1 回答 1

4

您需要使用setMap覆盖的方法。从文档

要从地图中删除叠加层,请调用叠加层的setMap()方法,传递null.

假设mapElements是一个对象数组,并且该marker属性引用了一个覆盖实例,那么您需要做的就是:

mapElements[lMapElementIndex]['marker'].setMap(null);

您的尝试会引发错误,因为您试图mapElements作为函数调用(当它看起来是一个数组时)。没有必要这样做。只需摆脱函数调用,它应该可以正常工作。

于 2012-06-06T12:49:35.773 回答