如何在传单中传递2个值到json样式
How to pass 2 values to json style in leaflet
我需要传递2个样式,我目前有:
第一风格:
function style(feature) {
return {
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7,
fillColor: getColor(feature.properties.density)
};
}
The I do:
var classNameMap = <?php echo JSON_encode($classesForCountries); ?>;
geojson = L.geoJson(statesData, {
style: style,
style: function(feature) {
var classes = classNameMap[feature.properties.name];
return {className: classes};
},
onEachFeature: onEachFeature
}).addTo(map);
但是忽略了第一个style
我尝试将其作为数组传递:
geojson = L.geoJson(statesData, {
style: [style, function(){
var classes = classNameMap[feature.properties.name];
return {className: classes};
}],
onEachFeature: onEachFeature
}).addTo(map);
但是,第一个样式被忽略了。
传单文档如果有帮助,请点击这里
解决方案:
var classNameMap = <?php echo JSON_encode($classesForCountries); ?>;
function style(feature) {
var classes = classNameMap[feature.properties.name];
return {
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7,
fillColor: getColor(feature.properties.density),
className: classes
};
}
geojson = L.geoJson(statesData, {
style: style,
onEachFeature: onEachFeature
}).addTo(map);
不熟悉leaflet
,但是从js的角度来看,使用重复键肯定会用最后一个键条目覆盖它的值。
如果你想附加style1和style2,因为style的两个函数都返回一个对象,你可以通过$.extend来完成。
function style_1(feature) {
return {
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7,
fillColor: getColor(feature.properties.density)
};
}
...
style: function(feature) {
// Now the logic is a simple hashmap look-up
var style1 = style_1(feature);
var classes = classNameMap[feature.properties.name];
var finalStyle = $.extend(style1, {className: classes});
return finalStyle;
}
...
您在对象初始化器中放入了重复的键。没有。
参见如何动态生成具有重复键的JSON对象?查找JavaScript对象中的重复键
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用XPath样式访问Javascript JSON对象属性
- 在JSON数组中进行迭代,并为其元素设置样式
- 在谷歌地图样式中使用JSON文件
- 反应谷歌地图节点模块映射样式加载空对象,而不是JSON
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 如何在传单上加载 json 文件并设置其样式
- 需要将应用于图像的筛选器样式转换为特定的 JSON 格式
- 如何在传单中传递2个值到json样式
- 如何在本地设置从 JSON 文件获取的数据的样式
- JSON数据上的SQL样式JOIN
- 样式分类json数据与传单
- 用Javascript解析JSON,用HTML/CSS设置样式