我有基于类型的过滤器标记,代码如下
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计数
答案 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);
}
});