Fai*_* Mq 3 google-maps markers layer
我需要在Google地图上显示一组标记.我知道标记可以直接添加到Google地图上,但考虑到我有3套标记,一套用于商店,一套用于公园,另一套用于酒店,我如何在3个不同的图层上显示它们以便稍后使用javascript ,我可以通过以下方式隐藏一组标记:
myLayer2.setMap(null);
Run Code Online (Sandbox Code Playgroud)
我已检查过Panoramio图层,但它需要先将图像上传到panoramio,但在我的情况下出于某些特殊的安全原因,我无法将它们上传到panoramio.我将在本地拥有图像,并根据某些标准在运行时设置它们.
有没有办法在不使用panoramio方法的情况下进行基于图层的工作?
Maps-API不支持这种自定义图层(因为您可能从其他map-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
Run Code Online (Sandbox Code Playgroud)
当您想要将Overlay ...例如Marker添加到"layer"时,将该Overlay的map-property绑定到MVCObject的相关属性:
parkMarker=new google.maps.Marker({/*options*/});
parkMarker.bindTo('map',myLayers,'parks');
Run Code Online (Sandbox Code Playgroud)
要切换该"图层"中所有要素的显示,您只需要设置MVCObject的属性:
//show the parks
myLayers.set('parks',map);
//hide the hotels
myLayers.set('hotels',null);
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/doktormolle/UA85N/
| 归档时间: |
|
| 查看次数: |
3993 次 |
| 最近记录: |