Я пытался создать фильтры для API Google Map на основе атрибутов данных, присвоенных маркерам. Я сделал пример на CodePen . Каждый маркер имеет (в этом примере) два атрибута данных:
- type_po
- denominat ie
Теперь проблема в том, что фильтры работают отдельно , но я не могу объединить два фильтра. Например, когда вы проверяете 'SBO' и 'Katholiek', вы должны видеть только один маркер, но вместо этого вы видите каждый маркер либо с атрибутом SBO, либо с атрибутом Katholiek.
Итак, мой вопрос: что нужно изменить сделать так, чтобы отображались только те маркеры, которые совпадают с отмеченными флажками вместе?
/*
Marker Filter
*/
filterMarker = function (id) {
for (i = 0; i < map.markers.length; i++) {
marker = map.markers[i];
if (document.getElementById(id).checked) {
if (marker.type_po == id) {
marker.setVisible(true);
}
} else {
if (marker.type_po == id) {
marker.setVisible(false);
}
}
if (document.getElementById(id).checked) {
if (marker.denominatie == id) {
marker.setVisible(true);
}
} else {
if (marker.denominatie == id) {
marker.setVisible(false);
}
}
}
}