我正在使用gmaps4rails gem,rails 4.0.8,underscore.js,我似乎无法使标记过滤器正常工作。它会进行过滤,但一次只能过滤一个类别(刷新整个地图),并且不会保存隐藏的标记。
我的代码基于this example。
代码发布在下面:
$(document).ready(function(){
handler = Gmaps.build('Google');
handler.buildMap({ internal: {id: 'map'}}, function(){
var markers_json = <%=raw @hash.to_json %>;
var markers = handler.addMarkers(markers_json);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
});
// show markers
function show(category) {
handler.buildMap({ internal: {id: 'map'}}, function(){
var markers_json = <%=raw @hash.to_json %>;
var markers = _.map(markers_json, function(marker_json){
var marker = handler.addMarker(marker_json);
_.extend(marker, marker_json);
return marker;
});
_.each(markers, function(marker, index){
var pin = markers[index];
if (pin.cat == category) {
marker.show();
}
});
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
// check the checkbox, using consulting for testing
document.getElementById(category+'box').checked = true;
}
// hide markers
function hide(category) {
// similar to show, except uses marker.hide();
}
function boxclick(box,category) {
if (box.checked) {
show(category);
} else {
hide(category);
}
}
我不确定如何保存标记数组,当我尝试构建Map之后(所以没有3个实例)我最终破坏了地图。我一直在尝试不同的方法让过滤器工作,但它让我发疯。
任何建议或指示都会有所帮助。谢谢!