Есть 3 флажка, и можно установить любую их комбинацию. . У каждого маркера есть свойство, называемое «типы», которое может содержать любую комбинацию из трех значений.
- Поэтому сначала я проверяю, какие значения проверяются, и добавляю их в строка.
- Затем я проверяю, не отмечен ли ни один из них, и если да, то все маркеры должны быть показаны.
- Затем я проверяю, имеет ли маркер все три значения в этом случае он должен отображаться всегда (поскольку он соответствует всем значениям).
- Наконец, я проверяю, находятся ли определенные выбранные значения на маркере. Он работает нормально, если он точно такой же, но если вариант 3 является единственным выбранным значением, а маркер имеет как вариант 2, так и вариант 3, он все равно должен отображаться.
Я тоже пробовал работать с массивами, но раздел фильтров в брошюре не совсем хорошо описан, а javascript не является моим «родным языком»
function icefilter(json) {
var icetypeFilter = "";
$("input[name=icetype]").each(function () {
if (this.checked) {
icetypeFilter = icetypeFilter + " " + this.value;
}
});
var att = json.properties.types;
if (icetypeFilter.length == 0) {
var cond1 = true;
} else if (att == " soft scoop shake") {
var cond1 = true;
} else {
var cond1 = att == icetypeFilter;
var cond1 = att.indexOf(icetypeFilter) >= 0;
}
return cond1;
}
$("input[name=icetype]").click(function () {
clusterLayer.clearLayers();
geojsonLayer.refresh();
locationList();
});
Подробнее здесь: https://stackoverflow.com/questions/789 ... ont-get-it
Мобильная версия