Фильтр маркеров с несколькими атрибутами данных в Google Maps API - PullRequest
0 голосов
/ 17 февраля 2020

Я пытался создать фильтры для API Google Map на основе атрибутов данных, присвоенных маркерам. Я сделал пример на CodePen . Каждый маркер имеет (в этом примере) два атрибута данных:

  1. type_po
  2. 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);
        }
    }

}

}

...