我在网上找到的所有关于如何根据其属性设置特征样式的示例都使用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);
如果我想根据数字阈值确定要素的颜色怎么办?假设所有具有大于某个值的propertyX(这是一个数字)的特征变为红色,否则为蓝色。
我找到this post,其中一位用户解释说切换语句不是用于比较的;那怎么办呢?
如果使用外部函数(参见下面的代码),后者似乎无法访问该功能的属性。
L.geoJSON(states, {
style: styling
}).addTo(map);
function styling () {
if (feature.properties.numericProp > 100) {
return {color: "red"}
} else {
return {color: "blue"}
}
}
答案 0 :(得分:1)
该功能传递了您的功能参数,您忘了添加它:
function styling (feature) {
// feature is now available
}