传单路径:如何设置css类?

mwa*_*sch 16 leaflet

好吧,标题说明了一切,但这里有一些代码,所以你明白我的意思.

function eachFeature(feature, layer) {
     layer.on({
         mouseover: highlightFeature,
         mouseout: resetHighlight,
     });
}
geojson = L.geoJson(geojson_raw, { style: style, onEachFeature: eachFeature });
geojson.addTo(map);
Run Code Online (Sandbox Code Playgroud)

geojson_raw是一个geojson对象,它保存在一个javascript变量中. style只是返回具有某些样式属性的对象的函数. highlightFeature/ resetHighlight是根据mousein/out事件更改这些样式的函数.

所以这段代码有效,我已经知道如何通过对用户事件做出反应来改变样式.但是如何在从我的geojson数据创建的路径上设置实际的css-classname?稍后在我的代码中,我想按特定的类名选择路径.

UPDATE

2年后,我再次偶然发现了这个问题.我花了2个小时来解开这个谜团.下面接受的答案确实有效,但有一个问题.它只适用于调用图层之前设置cssClass addTo(map).最后在源代码中深入挖掘后,很明显传单只在每个路径初始化时设置cssClass.

Mr.*_*ato 9

下面的代码将允许您在使用D3的geoJosn方法创建路径后添加类.

var svg = d3.select(map.getPanes().overlayPane).append("svg"),
g = svg.append("g").attr("class", "your_class");
Run Code Online (Sandbox Code Playgroud)

但是,如果您只想使用传单在创建时添加它们,请尝试在样式(功能)方法中返回它们,如下所示:

function style(feature) {
        return {
          weight: 1,
          opacity: .5,
          fillOpacity: 0.7,
          className: feature.properties.name_of_node
        };
}
Run Code Online (Sandbox Code Playgroud)

这对我来说非常有用.

  • `className:SOME_CLASS`回答了这个问题. (5认同)
  • 问题是关于用传单设置一个css类 - 而不是d3. (4认同)