Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openlayers &引用;“不是一个函数”;在要素样式中使用getStroke()时出错_Openlayers - Fatal编程技术网

Openlayers &引用;“不是一个函数”;在要素样式中使用getStroke()时出错

Openlayers &引用;“不是一个函数”;在要素样式中使用getStroke()时出错,openlayers,Openlayers,错误:未捕获(承诺中):类型错误: vectorLayer.getSource(…).getFeatures(…)[i].getStyle(…).getStroke不是函数 我正在尝试获取功能的颜色,但我遇到了这个错误。这就是我正在做的: for(让i=vectorLayer.getSource().getFeatures().length-1;i>=0;i--){ 阵列颜色({ 特征颜色:向量层。getSource().getFeatures()[i]。getStyle().getStroke

错误:未捕获(承诺中):类型错误:

vectorLayer.getSource(…).getFeatures(…)[i].getStyle(…).getStroke不是函数

我正在尝试获取功能的颜色,但我遇到了这个错误。这就是我正在做的:

for(让i=vectorLayer.getSource().getFeatures().length-1;i>=0;i--){
阵列颜色({
特征颜色:向量层。getSource().getFeatures()[i]。getStyle().getStroke().getColor()
});                                     
}
这将一直工作到
getStyle()
,它将返回一个样式函数
f(特征,分辨率)
。我觉得这有点奇怪,因为我认为这就是为什么要执行
getStyleFunction()
函数的原因。要素从KML文件导入的方法与从OL导入的方法相同,后者根据文件中的要素样式自动设置样式。从文档中,我看到
getStyle()
函数返回的结果如下:

获取功能的样式。将返回提供给模块的内容:ol/Feature~Feature#setStyle方法

我做错了什么?我是否对获得颜色或风格的方法感到困惑?有没有更简单的方法来实现这个目标


我正在使用OpenLayers v5.3

如果使用
setStyle()
设置函数
getStyle()
将返回函数
getStyleFunction()
将始终返回一个函数,无论设置了什么,因此
feature。getStyleFunction()(feature,resolution)
将返回一个样式,或者在导入KML的情况下,更可能返回一个样式数组。据我所知,在这种情况下,我应该收到一个样式或样式数组,因为所有功能都是从KML文件导入的,遗憾的是我没有。我从
getStyle()
getStyleFunction()
接收相同的输出,这是一个函数
f(特性、分辨率)
。现在我明白了为什么
getStroke()
方法会产生这个错误,因为它需要一个样式,但是我仍然不明白为什么我没有从任何提到的方法中获得样式。另外,是否可以从这个样式函数中获取样式?另外,上一个方法中是否有输入错误?如果有共享样式,则更容易使用单个函数,并在渲染时设置特定于功能的值,如文本<代码>功能。getStyleFunction()(功能,分辨率)获取函数,然后调用它。使用任意分辨率值,KML样式不依赖于分辨率。使用此方法解决了此问题。它返回一个样式对象数组,即使只有一个样式(在我的例子中,这是所需的样式)。如果你愿意,你可以写答案,我很乐意接受