2017-04-24 130 views
0

我正在使用L.GeoJSON.AJAX加載我的json。我有以下樣式標記:傳單geoJSON過濾

var weakClusterMarkerOptions = { 
     radius: 5, 
     fillColor: "#FFFF00", 
     color: "#000", 
     weight: 2, 
     opacity: 1, 
     fillOpacity: 0.8 
    }, 
    strongClusterMarkerOptions = { 
     radius: 7, 
     fillColor: "#CC0000", 
     color: "#CC0000", 
     opacity: 1, 
     fillOpacity: 0.8 
    }; 

    function customizeClusterIcon(feature, latlng) { 
    if (feature.properties.strongCl === 'strong') { 
     return L.circleMarker(latlng, strongClusterMarkerOptions); 
    } else { 
     return L.circleMarker(latlng, weakClusterMarkerOptions); 
    } 
    } 

然後我用下面的篩選:

function toggleStrength(strength, showLayer) { 
    jsonLayer.refilter(function (feature, layer) { 
     if (strength == 'all') { 
     return true; 
     } else { 
     if (showLayer) { 
      return feature.properties.strongCl === strength; 
     } 
     } 
    }); 
    } 

這裏的問題是,當我過濾circleMarker的邊界消失,但標誌仍可見的,特別是填充顏色。

回答

-1

您的fillColorcolor具有相同的值#CC0000。可能邊界在那裏。它的顏色與填充顏色相同。

+0

我不關心應該在那裏的標記,我的問題是我試圖過濾掉的標記仍然存在(邊框,即顏色消失,但fillcolor仍然可見) – ctrlspace

+0

您可以顯示' refilter'代碼?Leaflet的'filter'函數只適用於新添加的圖層,我很確定你的工作是一樣的,如果是這樣,你需要使用'eachFeature'並有條件地刪除項目。 –