marker.setMap(null)调用不会从地图中删除标记。
我已经确认地图和标记变量指向正确的位置,但是setMap(null)调用只是让标记在地图上可见。 setVisible(false)也没有效果。
if(sch_ovr_google_markers.length > 0){//remove from map
for(var i=0;i < sch_ovr_google_markers.length;i++){
sch_ovr_google_markers[i].setMap(null);//no effect
}
}
标记在此处创建:
var latlon = new google.maps.LatLng(o.lat, o.lon);
var marker = new google.maps.Marker(
{
map:sch_google_map,
position: latlon,
title: gpn[4],
icon: pinImage,
shadow: pinShadow,
animation: google.maps.Animation.DROP,
zIndex:10000,
index: c
});
sch_ovr_google_markers[lidx] = marker;
sch_ovr_google_iws[lidx] = new google.maps.InfoWindow({ content:h, position:latlon });
sch_ovr_google_cbs[lidx] = sch_ovr_google_marker_init(marker,lidx);
除了这个问题,整个地图都很有用。周围的代码测试很好,也很难完全列出。
我想知道是否有一些隐藏的先决条件让它起作用。我已经尝试在setMap(null)之前删除对它的其他引用,但仍然没有运气。
该文档听起来像是方法只是删除它,但显然,至少要满足,还有更多需要。有什么想法吗?
答案 0 :(得分:1)
希望原始海报仍然不需要这个迟到的答案,但我有类似的症状,无法在互联网上找到任何帮助。
对我来说,填充导致重复标记出现的数据存在问题。因此,调用setMap(null)
似乎没有做任何事情,虽然它实际上仍然可以正常工作,但当然它只能在另一个标记上工作,而另一个仍然在地图上看起来像{{{ 1}}没有工作。
因此,如果您确定标记的地图设置为空(可以从javascript控制台/调试程序检查)但标记仍然可见,请尝试设置setMap(null)
参数标记并移动它以查看是否有另一个标记潜伏在它后面。