Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Maps JavaScript API3 marker.setMap(null)未隐藏标记_Javascript_Google Maps_Google Maps Markers - Fatal编程技术网

Google Maps JavaScript API3 marker.setMap(null)未隐藏标记

Google Maps JavaScript API3 marker.setMap(null)未隐藏标记,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,setMap(null)调用不会从映射中删除标记 我已经确认map和marker变量指向正确的位置,但是setMap(null)调用只会让marker在map上可见。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_mar

setMap(null)调用不会从映射中删除标记

我已经确认map和marker变量指向正确的位置,但是setMap(null)调用只会让marker在map上可见。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
    }
}
除了这个问题,整个地图都很好用。周围的代码测试很好,太复杂,无法完整列出

我想知道是否有一些隐藏的先决条件,它的工作。在setMap(null)之前,我尝试过删除对它的其他引用,但仍然没有成功


文档使它听起来像是该方法将简单地删除它,但显然,至少要满足要求,还需要一些东西。有什么想法吗?

希望最初的海报仍然不需要这个迟来的答案,但我也有类似的症状,在互联网上找不到任何帮助

对我来说,填充数据时出现了一个问题,导致出现重复标记。因此,调用
setMap(null)
似乎没有什么作用,尽管它实际上仍然可以正常工作,但当然它只在另一个标记上工作,而另一个标记仍然在映射上,看起来
setMap(null)
不工作

因此,如果您确定标记的映射设置为null(您可以从javascript控制台/调试器进行检查),但标记仍然可见,请尝试为标记设置
draggable:true
参数,并将其四处移动,以查看是否有另一个标记隐藏在其后面

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);