如何在 OpenLayers 中设置和获取层的自定义属性

How to set and get custom attributes of layers in OpenLayers

在 OpenLayers 库中,我像这样创建图层:

var layer = new ol.layer.Tile({
    source: new ol.source.OSM()
});
...

我想做的是给这个层添加一些独特的属性,或者类似的东西:

var layer = new ol.layer.Tile({
    source: new ol.source.OSM(),
    customAttr: 'unique_id'
});
...

这样,以后我可以这样做:

map.getLayers().forEach(function(layer){
    if(layer.customAttr === 'unique_id'){
        doSomething();
    }
});

我不知道如何在实践中做到这一点。

if(layer.customAttr === 'unique_id') 更改为 if(layer.get("customAttr") === 'unique_id'),它应该可以工作。参见 this fiddle。