您可以创建自定义OverlayView做到这一点:
var LayerOverlay = function() {
this.overlays = [];
}
LayerOverlay.prototype = new google.maps.OverlayView();
LayerOverlay.prototype.addOverlay = function (overlay) {
this.overlays.push(overlay);
};
LayerOverlay.prototype.updateOverlays = function() {
for (var i = 0; i < this.overlays.length; i++) {
this.overlays[i].setMap(this.getMap());
}
};
LayerOverlay.prototype.draw = function() {};
LayerOverlay.prototype.onAdd = LayerOverlay.prototype.updateOverlays;
LayerOverlay.prototype.onRemove = LayerOverlay.prototype.updateOverlays;
然后,一旦你加入到覆盖LayerOverlay
,您可以显示或仅与一个setMap
隐藏起来:
var layer1 = new LayerOverlay();
layer1.addOverlay(createMarker());
layer1.addOverlay(createMarker());
layer1.addOverlay(createMarker());
// hide all markers
layer1.setMap(null);
// show all markers
layer1.setMap(map);
很有意思.. 。Google Maps如何在街道/地形/卫星之间切换? –
内部Google地图代码被混淆了,很难说清楚。 –
谢谢。除了API参考之外,还有其他关于'OverlayView'的文档吗?任何与其他例子?我很好奇,如果有其他方式可以使用,我不会想到。 –