在Google地图的不同图层上显示标记集

时间:2014-04-12 17:37:30

标签: google-maps layer markers

我需要在Google地图上显示一组标记。 我知道标记可以直接添加到Google地图上,但考虑到我有3套标记,一套用于商店,一套用于公园,另一套用于酒店,我如何在3个不同的图层上显示它们以便稍后使用javascript ,我可以通过以下方式隐藏一组标记:

myLayer2.setMap(null);

我已检查过Panoramio图层,但首先需要将图片上传到panoramio,但出于某些特殊安全原因,我无法将图片上传到panoramio。我将在本地拥有图像,并根据某些标准在运行时设置它们。

有没有办法在不使用panoramio方法的情况下进行基于图层的工作?

1 个答案:

答案 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);

演示:http://jsfiddle.net/doktormolle/UA85N/