我需要在谷歌地图上显示一组标记。
我知道标记可以直接添加到谷歌地图上,但鉴于我有 3 组标记,一组用于商店,一组用于公园,另一组用于酒店,我如何在 3 个不同的图层上显示它们,以便以后使用 javascript ,我可以通过以下方式隐藏一组标记:
myLayer2.setMap(null);
我已经检查了 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
当您想添加叠加层时...例如一个标记,一个“层”,将该叠加层的 map 属性绑定(bind)到 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/
关于google-maps - 在 Google map 的不同图层上显示标记集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033878/