如何使用rails中的Gmap4Rails更新Clusterer上的markerClusterer计数

时间:2014-08-01 09:01:01

标签: javascript jquery ruby-on-rails-3 google-maps gmaps4rails

我有基于类型的过滤器标记,代码如下

filters= ['office','home']

$.each(Gmaps.map.markers, function(i, marker) {
    if(filters.length < 1){
        Gmaps.map.showMarker(marker);
    }else if(filters.indexOf(marker.type) > -1){
        Gmaps.map.showMarker(marker);
    }else{
        Gmaps.map.hideMarker(marker);
    }
});

此代码会隐藏该标记,但不会更新地图上的Clusterer计数。

如何更新地图上的Clusterer计数

enter image description here

1 个答案:

答案 0 :(得分:2)

请尝试使用此代码

    handler = Gmaps.build('Google');
    handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
        markers_json = <%=raw @json.to_json %>;
        Gmaps.markers = _.map(markers_json, function(marker_json){
            marker = handler.addMarker(marker_json);
            _.extend(marker, marker_json);
            return marker;
        });
        handler.bounds.extendWith(Gmaps.markers);
        handler.fitMapToBounds();
    });
管理事件的

尝试使用此代码

    handler.clusterer.clear();
    $.each(Gmaps.markers, function(i, marker) {
         if(filters.length < 1){
               marker.show();
               handler.clusterer.addMarker(marker)
           }else if(filters.indexOf(marker.type) > -1){
              handler.clusterer.addMarker(marker);
              marker.show();
          }else{
              marker.hide();
              handler.clusterer.removeMarker(marker);
           }
    });