这实际上应该很容易,但是我被困在这里已经两天了,但仍然找不到OpenLayers无法执行API预期的原因。
有一个我要加载并显示在地图中的WFS图层。可以在这里看到这些功能:http://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&request=GetCapabilities
浏览完功能之后,我开始构建VectorLayer。我从Openlayers API中了解到,有两种方法可以加载功能:一种是使用 format 和 url ,另一种是使用 loader 。
由于 format + url 方法看起来非常简单,所以我决定使用此方法。我根据功能获得的网址创建了网址:http://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=gk:waterlevels&outputFormat=GML3
如您所见,可以通过此URL加载GML3格式的所有530个功能,因此直到此阶段都没有问题。
我开始编写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 ,但到目前为止,仍然没有任何效果。