我有一个工作的地图框/传单地图,我可以根据下拉菜单进行过滤,但只有其中一个可以使用,不确定语法(或者是否可能)组合过滤器?
我基本上有一个填充了json数据的房地产地图,其中包括房产类型和社区。需要组合可能的过滤器,因此选择不同的属性类型不会删除邻域过滤器。
$('#propertytype').change(function() {
if ($(this).val() === 'all') {
console.log($(this).val());
markers.setFilter(function(f) {
return f.properties['type'] != null;
});
} else {
console.log($(this).val());
var ptype = $(this).val();
markers.setFilter(function(f) {
return f.properties['type'] === ptype;
});
return false;
}
});
$('#neighborhood').change(function() {
if ($(this).val() === 'all') {
console.log($(this).val());
markers.setFilter(function(f) {
return f.properties['neighborhood'] != null;
});
} else {
console.log($(this).val());
var hood = $(this).val();
markers.setFilter(function(f) {
return f.properties['neighborhood'] === hood;
});
return false;
}
});
答案 0 :(得分:1)
当然,简化为一个功能:
$('#propertytype, #neighborhood').change(function() {
var propertyType = $('#propertytype').val();
var neighborhood = $('#neighborhood').val();
markers.setFilter(function(f) {
return (propertyType === 'all' || f.properties.type == propertyType) &&
(neighborhood === 'all' || f.properties.neighborhood === neighborhood);
});
return false;
});
(没有执行此代码,但应该有效)