更新传单标记类名

Update Leaflet marker className

我有一个叫 var stopsLayerL.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