更新传单标记类名
Update Leaflet marker className
我有一个叫 var stopsLayer
的 L.layerGroup()
。当用户设置了某些参数并且 "turn on" 仅那些与用户输入匹配的参数时,我想遍历它。
打开标记意味着它展示一种样式而不是默认样式。下面是我完成此操作的方法。
stopsLayer.eachLayer(function (layer) {
if (parameter === userInput) {
layer.options.icon.options.className = 'icon-on';
} else {
layer.options.icon.options.className = 'icon-off';
}
});
这个 "works" 就此而言,如果我 console.log()
每个标记并查看该标记的 icon
属性 的集合 className
,它已经更新。遗憾的是,此更改并未反映在地图本身中。
找到答案了。我一直在使用 setLayer
这是不正确的。有一个名为 setIcon
的可用方法,但没有详细记录。
我在这里找到了一个演示其用法的 JSFiddle:http://jsfiddle.net/JYF9u/8/
它也被列为文档中标记下的方法:http://leafletjs.com/reference.html#marker-seticon
我有一个叫 var stopsLayer
的 L.layerGroup()
。当用户设置了某些参数并且 "turn on" 仅那些与用户输入匹配的参数时,我想遍历它。
打开标记意味着它展示一种样式而不是默认样式。下面是我完成此操作的方法。
stopsLayer.eachLayer(function (layer) {
if (parameter === userInput) {
layer.options.icon.options.className = 'icon-on';
} else {
layer.options.icon.options.className = 'icon-off';
}
});
这个 "works" 就此而言,如果我 console.log()
每个标记并查看该标记的 icon
属性 的集合 className
,它已经更新。遗憾的是,此更改并未反映在地图本身中。
找到答案了。我一直在使用 setLayer
这是不正确的。有一个名为 setIcon
的可用方法,但没有详细记录。
我在这里找到了一个演示其用法的 JSFiddle:http://jsfiddle.net/JYF9u/8/
它也被列为文档中标记下的方法:http://leafletjs.com/reference.html#marker-seticon