【问题标题】:Google Maps JavaScript API3 marker.setMap(null) Not Hiding the MarkerGoogle Maps JavaScript API3 marker.setMap(null) 不隐藏标记
【发布时间】:2012-11-10 14:50:53
【问题描述】:

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) 之前删除对它的其他引用,但仍然没有运气。

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

【问题讨论】:

    标签: javascript google-maps google-maps-markers


    【解决方案1】:

    希望原始发布者仍然不需要这个迟到的答案,但我有类似的症状,在互联网上找不到任何帮助。

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

    因此,如果您确定标记的映射设置为 null(您可以从 javascript 控制台/调试器检查)但标记仍然可见,请尝试为标记设置 draggable: true 参数并移动它以查看如果另一个标记潜伏在它后面。

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      相关资源
      最近更新 更多