切换包含在群集内的地图标记

时间:2012-10-06 10:17:53

标签: google-maps

我在网站上有一个谷歌地图,地图包括以下内容:

3种不同类型的地图引脚 当太靠近时,引脚也会聚集在一起。

我现在遇到了什么问题: 我现在的任务是提供切换问题所在的每个标记组的可见性的能力。如果标记没有聚集并且下面的代码工作得很好,这将是直接的:

    onOff = (onOff == 1) ? sawdays.accordion.map : null;


    var mapArray;
    switch( type ){
        case 'bandb': mapArray = sawdays.accordion.bandbMarkers;
        break;

        case 'hotel': mapArray = sawdays.accordion.hotelMarkers;
        break;

        case 'inn': mapArray = sawdays.accordion.innMarkers;
        break;

        case 'pub': mapArray = sawdays.accordion.pubMarkers;
        break;
    }

    if ( mapArray.length > 0 ) {
        for (i in mapArray)
            mapArray[i].setMap(onOff);
        }
    }

问题是,群集内的引脚没有切换,如果我关闭说酒店的针脚,点击一个群集,酒店地图引脚仍然存在...

我在群集上发现了以下内容:http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html但是看不到实现我目标的方法。

我认为我在这里遇到了障碍,保留群集功能但添加切换功能的最佳方法是重绘地图(这是网站http://www.sawdays.co.uk/special-places/content/search/?map#maptypeid=roadmap&zoom=9&lng=-3.36493113281245&lat=54.874929190748624)。地图的数据在页面加载中被ajaxed所以所有数据已经​​存在于客户端机器上以重新配置地图......

问题: 是否可以从群集内外切换地图引脚的可见性?

1 个答案:

答案 0 :(得分:0)

MarkerClusterer控制它聚类的标记的可见性(因此您无法独立控制它们)

我的建议:

  1. 为每个类别保留不同的数组
  2. 当您“隐藏”某个类别时,请从MarkerClusterer中删除这些标记,或清除MarkerClusterer,然后添加可见的类别数组。
  3. 要“显示”类别,请将这些标记添加回MarkerClusterer或清除MarkerClusterer,只需添加可见的类别数组。
  4. 隐藏/显示未聚类的标记(实际上,如果正确执行1,2和3,则可能不需要这样做)