私は gmaps4rails gem の大ファンで、うまく機能し、非常に柔軟です。
ただし、クラスターマーカーを簡単にクリアおよび更新できないようで、この宝石を使用している Stackoverflow で同様のソリューションを見つけることができません。
私の JavaScript では、次のメソッドを使用して可視マーカーを除外しています。しかし、Gmaps.map.clearClusterer はクリック イベントに応答していないようです。マーカーを適切に表示および非表示にすることはできますが、クラスター マーカーをクリアしたり、クラスター マーカーを新しい番号で更新したりすることはできません。どうすればいいですか?
var VisibleMarker=function(){
var filtered=_.filter(Gmaps.map.markers,function(marker){
return marker.building_type == SELECT;
}); //end of _.filter
return filtered
}//end of VisibleMarker
var applyFilters=function(){
var VisibleArray=VisibleMarker()
_.each(Gmaps.map.markers,function(marker){
Gmaps.map.hideMarker(marker)
})
Gmaps.map.clearClusterer()
_.each(VisibleArray,function(marker){
Gmaps.map.showMarker(marker)
})
Gmaps.map.createClusterer(VisibleArray)
};//end of applyFilters
アップデート:
MarkerClusterer クラスで addMarkers() メソッドを正しく呼び出すにはどうすればよいですか? http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/docs/reference.html
私はこの行を使用しました:
Gmaps.map.addMarkers(VisibleArray)
ただし、代わりにこの関数を呼び出します。
Gmaps4Rails.prototype.addMarkers = function(new_markers) {
this.markers = this.markers.concat(new_markers);
this.create_markers();
return this.adjustMapToBounds();
};