我们说我有以下对象:
var map = new google.maps.Map(...)
var marker = new google.maps.Marker(...);
我可以将marker
添加到map
:
marker.setMap(map);
如果地图上已存在标记,并且我再次调用marker.setMap(map)
,那么API是否实际重绘了标记?或者它是否知道地图上已存在标记,因此它不会采取任何进一步的行动?
我正在侦听事件,并且需要在发生这些事件时从地图中添加或删除标记。我想知道我是否可以继续拨打setMap(map)
,即使该标记已经存在但性能不会受到严重影响,或者我是否需要变得更聪明并且如果标记不首先调用setMap
已经在地图上了。
如果您不知道答案,您是否知道如何解决这个问题?
答案 0 :(得分:0)
如果标记已存在于地图上,我调用marker.setMap(map) 再次,API实际重绘标记吗?或者它知道 标记已经存在于地图上,因此它不会再进行任何操作 操作
setMap函数处理标记的可见性...确定标记必须放置/可见的地图对象的标记。 如果你设置了marker.setMap(null),你就不会破坏标记,只是在" map"中没有显示。
当您在标记上管理事件时,您可以使用setMap(null)使标记不可见..如果您已经在某些var..eg中预先存储了标记对象
var store_marker = marker;
你只需再打开
即可 store_marke.setMap(map);
您可以使用数组管理标记集合