Google Maps V3 API setMap

时间:2016-01-09 05:49:50

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

我们说我有以下对象:

var map = new google.maps.Map(...)
var marker = new google.maps.Marker(...);

我可以将marker添加到map

marker.setMap(map);

如果地图上已存在标记,并且我再次调用marker.setMap(map),那么API是否实际重绘了标记?或者它是否知道地图上已存在标记,因此它不会采取任何进一步的行动?

我正在侦听事件,并且需要在发生这些事件时从地图中添加或删除标记。我想知道我是否可以继续拨打setMap(map),即使该标记已经存在但性能不会受到严重影响,或者我是否需要变得更聪明并且如果标记不首先调用setMap已经在地图上了。

如果您不知道答案,您是否知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

如果标记已存在于地图上,我调用marker.setMap(map)   再次,API实际重绘标记吗?或者它知道   标记已经存在于地图上,因此它不会再进行任何操作   操作

setMap函数处理标记的可见性...确定标记必须放置/可见的地图对象的标记。 如果你设置了marker.setMap(null),你就不会破坏标记,只是在" map"中没有显示。

当您在标记上管理事件时,您可以使用setMap(null)使标记不可见..如果您已经在某些var..eg中预先存储了标记对象

 var store_marker = marker;

你只需再打开

即可
  store_marke.setMap(map);

您可以使用数组管理标记集合