2017-05-28 17 views
1

我在網上找到的所有示例都是關於如何根據其某個屬性設置樣式的功能,它們使用switch語句評估該屬性是否與特定值相對應。如何根據小冊子中的比較運算符設置樣式

例如這被認爲是形式one of Leaflet's官方教程:

L.geoJSON(states, { 
style: function(feature) { 
    switch (feature.properties.party) { 
     case 'Republican': return {color: "#ff0000"}; 
     case 'Democrat': return {color: "#0000ff"}; 
    } 
} 
}).addTo(map); 

,如果我想要確定特徵的顏色取決於數字treshold?假設所有具有propertyX(這是一個數字)大於特定值的要素都會變爲紅色,否則變爲藍色。

我發現this post其中一位用戶解釋說switch語句不作比較;那我該怎麼做呢?

如果使用外部函數(請參閱下面的代碼),後者似乎無法訪問該功能的屬性。

L.geoJSON(states, { 
    style: styling 
    }).addTo(map); 

function styling() { 
    if (feature.properties.numericProp > 100) { 
     return {color: "red"} 
    } else { 
     return {color: "blue"} 
    } 
} 

回答

1

的功能被傳遞你的函數的參數,你忘了添加:

function styling (feature) { 
    // feature is now available 
} 
+0

正確!謝謝.. 剛一說明,如果有人試圖做同樣的訪問功能特性的模式是: 功能造型(功能){// 功能現已 VAR myProp = feature.properties.myProp; if(myProp> treshold){//做點什麼; } } – Fede9390