那么标题就是说这一切,但是这里是一些代码,所以你看到我的意思.
function eachFeature(feature,layer) { layer.on({ mouSEOver: highlightFeature,mouSEOut: resetHighlight,}); } geojson = L.geoJson(geojson_raw,{ style: style,onEachFeature: eachFeature }); geojson.addTo(map);
geojson_raw是一个保存在javascript变量中的geojson对象.
style只是返回具有某些样式属性的对象的函数.
highlightFeature / resetHighlight是根据mousein / out事件更改这些样式的功能.
所以这个代码是有效的,我已经知道如何通过对用户事件的反应来改变样式.
但是如何在我的geojson数据创建的路径上设置一个实际的css-classname?稍后在我的代码中,我想选择特定类名称的路径.
UPDATE
2年后,我再次绊倒了这个问题.而我花了2个小时来解决这个谜.下面接受的答案是有效的,但是有一个抓住.它仅在您在层上调用addTo(map)之前设置cssClass才起作用.最后在源代码中挖掘它,变得很清楚,传单只有在每个路径被初始化时才设置cssClass.
解决方法
下面的代码将允许您在使用geoJosn方法与D3创建路径之后添加一个类.
var svg = d3.select(map.getPanes().overlayPane).append("svg"),g = svg.append("g").attr("class","your_class");
但是,如果要仅使用传单将其添加到创建中,请尝试以style(feature)方法返回它们:
function style(feature) { return { weight: 1,opacity: .5,fillOpacity: 0.7,className: feature.properties.name_of_node }; }
这对我来说真的很好.