首页 > 解决方案 > OpenLayers 5 会加载 WFS 功能,但不会在地图中添加和显示它们

问题描述

这实际上应该很容易,但是我在这里被困了两天,仍然找不到为什么 OpenLayers 没有按照我对 API 的预期执行的原因。

我想加载一个 WFS 图层并在我的地图中显示。功能可以在这里看到:http ://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&request=GetCapabilities

在完成 Capabilities 之后,我开始构建我的 VectorLayer。我从 Openlayers API 中了解到有两种加载功能的方法:一种是使用formaturl,另一种是使用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,但到目前为止没有任何效果。

标签: openlayersopenlayers-5web-feature-service

解决方案


推荐阅读