通常要初始化一个vectorLayer空对象,好处:
- 通过Object.keys(this.vectorLayer).length来判断图层是否为{}
- 通过this.vectorLayer.getSource()来获取数据源。这样就不用初始化一个空数据源对象了
获取图层所有属性
layer.getProperties()
添加图层
addLayer() {
if (Object.keys(this.vectorLayer).length !== 0) return;
// 设置图层
this.vectorLayer= new VectorLayer({
source: new VectorSource({
features: new GeoJSON().readFeatures(this.geojsonData),
}),
});
// 添加图层
this.map.addLayer(this.vectorLayer);
},
移除图层
removeLayer() {
if (Object.keys(this.vectorLayer).length == 0) return;
this.vectorLayer.getSource().clear();
this.map.removeLayer(this.vectorLayer);
this.vectorLayer= {};
},
获取map中的所有图层
map.getLayers()
获取图层数组
map.getLayers().getArray()
设置图层是否可见
layer.setVisible(bool)
获取图层属性
layer.get("xxx")
根据图层名获取图层
getLayerByName(layername) {
let layers = this.map.getLayers().getArray();
for (const layer of layers) {
if (layer.get("name") == layername) {
return layer;
}
}
},