Angular 5和OpenLayers 4不显示WFS

时间:2018-03-13 08:54:10

标签: angular openlayers angular-openlayers web-feature-service

我似乎无法解决如何显示WFS地图的问题。

我目前正在显示WMS图层,如下所示:

let wmsLayer = new ol.source.TileWMS({
  url: mapService.url,
  params: {
    LAYERS: mapService.layers,
    TILED: true,
    FORMAT: mapService.format
  },
  serverType: 'geoserver'
});
this.featureLayer = wmsLayer;
return new ol.layer.Tile({
  source: wmsLayer
});

有魅力......

当我尝试显示WFS时 - 没有任何显示:

let vectorLayer = new ol.source.Vector({
  format: new ol.format.GML(),
  url: function(extent) {
    return 'https://geodienste.hamburg.de/HH_WFS_Statistik_Stadtteile_Wahlergebnisse' +
      '?version=1.1.0&request=GetFeature&typename=Statistik_Stadtteile_Wahlergebnisse:Buergerschaftswahl_15.02.2015_-_Wahlbeteiligung_in_Prozent';
  },
  strategy: ol.loadingstrategy.bbox
});

this.featureLayer = vectorLayer;

return new ol.layer.Vector({
  source: vectorLayer,
  style: new ol.style.Style({
    stroke: new ol.style.Stroke({
      color: 'rgba(0, 0, 255, 1.0)',
      width: 2
    })
  })
});

加载例程略有不同,因为WMS加载已经自动化,而WFS则没有。这就是为什么URL是硬编码的。 谁能告诉我,为什么没有出现?

对geodienste.hamburg.de ...的请求正在返回1.8 MB的GML数据 - 即使在更严格的请求中也可以看到。

我试图坚持OL的例子 背景图也显示在上面的两个例子中。

2 个答案:

答案 0 :(得分:0)

要求:

https://geodienste.hamburg.de/HH_WFS_Statistik_Stadtteile_Wahlergebnisse?version=1.1.0&request=GetFeature&typename=Statistik_Stadtteile_Wahlergebnisse:Buergerschaftswahl_15.02.2015_-_Wahlbeteiligung_in_Prozent&

不返回任何结果,因为(a)格式不正确,您需要指定service=WFS&请求参数,以及(b)因为它们不是称为 Buergerschaftswahl_15.02.2015 _-_ Wahlbeteiligung_in_Prozent < / p>

可用的要素类型可以在此处列出:

https://geodienste.hamburg.de/HH_WFS_Statistik_Stadtteile_Wahlergebnisse?version=1.1.0&request=GetCapabilities&service=WFS&

答案 1 :(得分:0)

问题在于预测的差异。 使用proj4解决了这个问题;

let myProjectionName = 'EPSG:25832';
proj4.defs(myProjectionName, '+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs');
ol.proj.setProj4(proj4);