Google Maps API v3中的removeOverlay

时间:2012-06-06 12:43:28

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

如何将其移植到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

1 个答案:

答案 0 :(得分:4)

您需要使用叠加层的setMap方法。 From the docs

  

要从地图中移除叠加层,请调用叠加层的setMap()方法,   通过null

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

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

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