На самом деле это должно быть очень легко, но я застрял здесь на два дня и до сих пор не могу найти причину, по которой OpenLayers не делает то, что я ожидаю от API.
Существует слой WFS, который я хочу загрузить и показать на моей карте. Возможности можно увидеть здесь: http://www.pegelonline.wsv.de/webservices/gis/aktuell/wfs?service=WFS&request=GetCapabilities
Пройдя через Возможности, я начал создавать свой VectorLayer. Я прочитал из Openlayers API, что есть два способа загрузить функции: один с формат и url , другой с загрузчик .
Поскольку способ 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
Как вы можете видеть, все 530 функций в формате GML3 могут быть загружены через этот 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 функций.
Но в сетевом анализе я мог видеть файл GML с 530 успешно загруженными функциями. Так что я сейчас немного растерялся.
Я был бы признателен, если бы кто-то мог указать, какой шаг я могу делать неправильно. Я уже несколько раз проверял импорт, возможности WFS и менял стили также несколько раз. Я даже попробовал с loader , но пока ничего не работает.