好吧,标题说明了一切,但这里有一些代码,所以你明白我的意思.
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.
下面的代码将允许您在使用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)
这对我来说非常有用.
| 归档时间: |
|
| 查看次数: |
10801 次 |
| 最近记录: |