如果我在初始化后自动缩小,Google地图v3标记管理器不会隐藏标记

时间:2013-02-12 15:02:35

标签: google-maps-api-3 markermanager

我在谷歌地图上绘制折线,并将标记放到每个点上。我想隐藏这些标记更高的缩放级别,因此我使用标记管理器。它运作良好。

绘制完所有内容后,地图会使用google.map.fitBound命令缩放到折线的边界。但如果它放大到远,标记将被隐藏的地方,它们不会。他们仍然可见。如果我再次拖动或缩放,它们就会隐藏。

我以简单的方式使用markermanager:

var aMarkers [...array of markers...],
markerMgr = new MarkerManager(map);

google.maps.event.addListener(markerMgr, 'loaded', function() {
    markerMgr.addMarkers(aMarkers[0], 15, 0);
    markerMgr.addMarkers(aMarkers[1], 12, 0);
    markerMgr.addMarkers(aMarkers[2], 10, 0);
    markerMgr.refresh();
});

以前有人遇到过这个问题吗?谢谢提前!

2 个答案:

答案 0 :(得分:2)

我有同样的问题。创建标记时,请勿在标记选项中设置“map”参数。放大和缩小时,MarkerManager会将标记添加到地图中。

例如:

var newMarker = new google.maps.Marker({
    //map: map
    position: markerPosition,
    icon: icon
});
mgr.addMarker( newMarker, 9 );

答案 1 :(得分:0)

为什么对于设置为0的标记有最大缩放?

MarkerManager.addMarkers(aMarkers[0], minZoom, maxZoom(optional))

尝试(根据documentation,该参数是可选的):

var aMarkers [...array of markers...],
markerMgr = new MarkerManager(map);

google.maps.event.addListener(markerMgr, 'loaded', function() {
    markerMgr.addMarker(aMarkers[0], 15);
    markerMgr.addMarker(aMarkers[1], 12);
    markerMgr.addMarker(aMarkers[2], 10);
    markerMgr.refresh();
});

Working Example