从geoJSON数据集中添加类

时间:2019-06-11 21:47:17

标签: leaflet

我正在尝试使用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。

1 个答案:

答案 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)是正确的,因此您将无法更改其颜色,无法定义不同的图像(标记颜色不同)。