我需要在Google地图上显示一组标记。 我知道标记可以直接添加到Google地图上,但考虑到我有3套标记,一套用于商店,一套用于公园,另一套用于酒店,我如何在3个不同的图层上显示它们以便稍后使用javascript ,我可以通过以下方式隐藏一组标记:
myLayer2.setMap(null);
我已检查过Panoramio图层,但首先需要将图片上传到panoramio,但出于某些特殊安全原因,我无法将图片上传到panoramio。我将在本地拥有图像,并根据某些标准在运行时设置它们。
有没有办法在不使用panoramio方法的情况下进行基于图层的工作?
答案 0 :(得分:7)
Maps-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的map属性绑定到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);