这实际上应该很容易,但是我在这里被困了两天,仍然找不到为什么 OpenLayers 没有按照我对 API 的预期执行的原因。
我想加载一个 WFS 图层并在我的地图中显示。功能可以在这里看到:http ://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&request=GetCapabilities
在完成 Capabilities 之后,我开始构建我的 VectorLayer。我从 Openlayers API 中了解到有两种加载功能的方法:一种是使用format和url,另一种是使用loader。
由于format + url的方式看起来很简单,所以我决定使用它。我根据从功能中获得的内容创建了 URL:http ://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=gk:waterlevels&outputFormat=GML3
如您所见,GML3 格式的所有 530 个特征都可以通过此 URL 加载,因此到此阶段为止都没有问题。
我开始编写 OpenLayers 5 代码:
createVectorLayer () {
const vectorLayer = new VectorLayer({
name:"waterlevels",
source: new VectorSource({
format: new GML3(),
url: "http://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=gk:waterlevels&outputFormat=GML3"
}),
style: new OlStyle({
image: new Icon({
src: 'static/Icons/waterlevels.png'
})
})
})
}
我已经完成了所有的导入,但只是没有在这里显示以节省空间。第一个想法实际上是风格似乎不太好。但是在我检查图层后,layer.getSource().getFeatures()
我发现 Vectorlayer 中有 0 个特征。
但在网络分析中,我可以看到成功加载了 530 个特征的 GML 文件。所以我现在有点困惑。
如果有人能指出我在这里可能做错了哪一步,我将不胜感激。我已经多次检查了导入、WFS 功能,并且还多次更改了样式。我什至尝试过loader,但到目前为止没有任何效果。