我正在尝试使用Leaflet 0.7.3基于geoJSON属性为Leaflet地图上的标记提供一个类。 我希望能够根据使用CSS表示的裁剪来更改标记的颜色。这似乎很简单,但是我尝试的所有方法都失败了。
我尝试使用:
L.DomUtil.addClass(marker._icon,'className');
和
addClass(marker,'我在这里使用变量');
但是它不起作用。 到目前为止,这里是我正在使用的代码:
L.geoJson(geoDataF,{
pointToLayer: function(feature,latlng){
var className = feature.properties.crop;
console.log(className);
var marker = L.marker(latlng);
marker.bindPopup(feature.properties.name
+ '<br/>' + feature.properties.location
+ '<br/>' + "Crops: " + feature.properties.crop);
console.log(marker);
return marker;
}
}).addTo(map);
我不确定在哪里添加一些额外的代码来添加类以及使用什么语法。每次使用addclass时,都会收到一条消息,因为它不是函数,所以无法使用它。 我虽然打算使用D3尝试添加一个类,但是我不完全了解传单,并且很难操作DOM。
答案 0 :(得分:0)
请参阅:Leaflet changing Marker color
addClass用于将类添加到html元素,因此您可以指定哪些元素
例如:
$(selector).addClass(header, 'closed');
请参考:https://www.w3schools.com/jquery/html_addclass.asp以使用addClass
getColor() write function in the js script to adjust your color accordingly
function style(feature) {
return {
fillColor: getColor(feature.properties.density),
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7
};
}
L.geoJson(statesData, {style: style}).addTo(map);
这是传单教程中引用的示例(很有帮助) https://leafletjs.com/examples/choropleth/
标记也是图像(png)是正确的,因此您将无法更改其颜色,无法定义不同的图像(标记颜色不同)。