OpenLayers 7获取矢量层中的所有功能



我正在从早期版本的Openlayers升级,似乎不知道如何在矢量层中获得所有功能。

就上下文而言,我的最终目标是根据特定的数据标准设置每个特征的可见性,所以如果有其他方法可以做到这一点,我也会对此感兴趣。

我的代码是:

pointType是一个内部参考字符串,用于区分层/数据。我所有的图层都将其作为关键。

public getFeatures(pointType: string): any {
const layer = this.getLayer(pointType);
const source = layer.getSource();
const features = null; //source.getFeatures();
return features;
}
private getLayer(pointType: string): Layer {
const layers = this.getLayers();
for (let l = 0; l < layers.length; l++) {
if (pointType === layers[l].get("pointType"))
return layers[l];
}
return null;
}
private getLayers(): Layer[] {
if (!this.map)
return null;
return this.map.getAllLayers(); // this.map is typeof ol/Map
}

我得到的LayerVectorlayer类型,SourceVectorSource-所以我觉得我很接近。但我似乎不知道如何跳到实际功能的最后一步。

任何帮助都将不胜感激!

编辑:其他信息。

source.getFeatures()导致错误:

Error TS2339 (TS) Property 'getFeatures' does not exist on type 'Source'.

源来自ol/source/Source-我需要以某种方式将其转换/转换为ol/source/Vector吗?

第2版:简单的修复!只需将其投射到VecorSource

const features = (source as VectorSource).getFeatures();

感谢@Mike(请参阅评论(,我发现我所需要做的就是将ol/source/Source转换为ol/source/Vector来解决问题。

完整的getFeatures()代码:

public getFeatures(pointType: string): any {
const layer = this.getLayer(pointType);
const source = layer.getSource();
const features = (source as VectorSource).getFeatures();
return features;
}

相关内容

  • 没有找到相关文章

最新更新