地图 API 不支持这种自定义图层(您可能从其他地图 API(例如传单)中了解它们)。
但实现类似的功能并不难。
您可以使用google.maps.MVCObject
。对于每个“图层”,为此 MVCObject 创建一个属性,并将该属性的值设置为 null 或 google.maps.Map-instance(
取决于“层”所需的初始状态)
var myLayers=new google.maps.MVCObject();
myLayers.setValues({parks:null,shops:null,hotels:map});
//hotels initially are visible
当您想添加叠加层时...例如一个标记,到一个“层”,将该 Overlay 的地图属性绑定到 MVCObject 的相关属性:
parkMarker=new google.maps.Marker({/*options*/});
parkMarker.bindTo('map',myLayers,'parks');
要切换该“层”内所有功能的显示,您只需设置 MVCObject 的属性:
//show the parks
myLayers.set('parks',map);
//hide the hotels
myLayers.set('hotels',null);
Demo: http://jsfiddle.net/doktormolle/UA85N/ http://jsfiddle.net/doktormolle/UA85N/