google-maps - 在 Google map 的不同图层上显示标记集

标签 google-maps layer markers

我需要在谷歌地图上显示一组标记。
我知道标记可以直接添加到谷歌地图上,但鉴于我有 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/

相关文章:

plot - 在 Labview 中自定义绘图

python - Matplotlib 绘制虚线圆圈(使用 plt.plot 而不是 plt.scatter)

java - 比 datasnapshot 更好的方法是从 Firebase 检索每个特定帖子的特定数据?返回的位置错误

php - Google Geo API(纬度 + 经度)

maps - Google Maps GeoJSON-切换标记层吗?

python - Pygame,有没有办法制作 "screen layers"?

javascript - Highcharts 中的条件标记颜色

javascript - Google map 引擎 - 在 InfoWindow 上显示路线

javascript - Google Map Api 悬停标记放大图标

iPhone:使用 3D 图层转换时如何以编程方式截取屏幕截图