2015-05-01 2 views
0

Я пытаюсь фильтровать маркеры картона с пользовательскими значками в группе markerclustergroup. Кажется, я не могу заставить фильтры работать над группой markercluster. Вот соответствующая часть кода:Filtering mapbox markcluster

var filters = document.getElementById(‘filters’); 
var checkboxes = document.getElementsByClassName(‘filter’); 

var markers = L.mapbox.featureLayer() 
    .setGeoJSON(geojson); 

var markercluster = new L.MarkerClusterGroup(); 

markers.on(‘layeradd’, function(e) { 

// Create custom markers 

    var marker = e.layer, 
    feature = marker.feature; 
    marker.setIcon(L.icon(feature.properties.icon)); 

function change() { 
// Find all checkboxes that are checked and build a list of their values 
    var on = []; 
    for (var i = 0; i < checkboxes.length; i++) { 
     if (checkboxes[i].checked) on.push(checkboxes[i].value); 
    } 
    // The filter function takes a GeoJSON feature object 
    // and returns true to show it or false to hide it. 
    markers.setFilter(function (f) { 
     // check each marker’s symbol to see if its value is in the list 
     // of symbols that should be on, stored in the ‘on’ array 
     return on.indexOf(f.properties[‘marker-symbol’]) !== -1; 
    }); 
    return false; 
} 

// When the form is touched, re-filter markers 
filters.onchange = change; 
// Initially filter the markers 
change(); 

markercluster.addLayer(markers); 
map.addLayer(markercluster); 
+0

только из текста (без кода) не является на самом деле не ясно для меня, что вы пытаетесь достичь и как вы заметили, что не работает. – Joop

ответ