本文介绍了如何使用Rails中的Gmap4Rails更新Clusterer上的markerClusterer计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码根据类型筛选标记

  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数量

解决方案

请使用此代码

  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);
}
});


I have filter marker based on type by below code

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);
    }
});

this code hide that marker but its not update Clusterer count on the map.

how to update Clusterer count on map

解决方案

Please try with this code

    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();
    });

for manage event try with this code

    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);
           }
    });

这篇关于如何使用Rails中的Gmap4Rails更新Clusterer上的markerClusterer计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 17:05