获取openlayers 5中的单击函数时出现arr.indexOf错误



在openlayers 5中,我有一个向量层,我试图创建代码,以便在单击后获得特性的属性。

这是我迄今为止的代码

var selectClick = new Select({
condition: click,
layers:this.vectorlayer
});
this.olmap.addInteraction(selectClick);    
var selectedFeatures = selectClick.getFeatures();

然后我试过

selectClick.on('select', ()=>{console.log(selectedFeatures);});

selectedFeatures.on('add', function(event) {
console.log( selectClick.getFeatures());  
});

我得到

错误类型错误:arr.indexOf不是函数

在这两种情况下。

我做错了什么?我的最终目标是selectClick.getFeatures().feature.properties.id,由于我正在加载的geoJSON,其中也有一些元数据属性。

那么,如何获取所选功能?

感谢

又是一个"欢呼"时刻。该错误与selectClick的语法以及我如何设置layers变量有关。我将this.vectorlayer设置为变量,但它应该在数组内,因此出现了与数组相关的indexOf错误。

ol5+angular6中的代码现在是

this.vectorsource = new VectorSource({});
this.vectorlayer = new VectorLayer({
source: this.vectorsource
});
this.view = new OlView({
center: OlProj.fromLonLat([6.661594, 50.433237]),
zoom: 2,
});
this.olmap = new OlMap({
target: 'map',
layers: [this.tilelayer,this.vectorlayer],
view: this.view,
projection: 'EPSG:3857'
});
var selectClick = new Select({
condition: click,
layers:[this.vectorlayer]//this should be in an array, you silly codebot
});
this.olmap.addInteraction(selectClick);        
selectClick.on(
'select', function(){     
console.log(selectClick.getFeatures().item(0).values_);//   contains metadata properties of geoJSON
}             
);

感谢

相关内容

  • 没有找到相关文章

最新更新