В настоящее время я использую WFS с Openlayers, но слои находятся не в том положении, если я прав, проблема связана с srsName, но как это изменить?
Вот мой код для WFS :
var WFSSource = new VectorSource({
format: new GeoJSON(),
url: function(extent) {
return 'http://localhost:8081/geoserver/occi/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=occi%3Aocci&maxFeatures=5&outputFormat=application%2Fjson';
},
strategy: bboxStrategy,
});
var WFSLayer = new VectorLayer({
source: WFSSource
});
У меня была та же проблема с WMS, но я просто изменил SR C на Geoserver (EPSG: 2154) и все прошло нормально. Теперь у меня та же проблема, которая дает мне следующий результат
Геометрия должна быть в нижней части страны. Я думаю, что VectorSource имеет имя srs по умолчанию, но я не знаю, как его изменить. Кстати, по этой ссылке: https://openlayers.org/en/latest/examples/vector-wfs.html они показывают, как использовать WFS, и у него есть эта строка кода:
url: function(extent) {
return 'https://ahocevar.com/geoserver/wfs?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +
'outputFormat=application/json&srsname=EPSG:3857&' +
'bbox=' + extent.join(',') + ',EPSG:3857';
},
, где он определяет srsName, но не работает для меня.
----- Обновление -----
После проверки проекции я нашел следующее:
Моя карта имеет проекцию по умолчанию -> код: "EPSG: 3857", единицы измерения: метры
My TileWMS не имеет настроек, но в документации сказано, что параметры задаются динамически. Дело в том, что на Geoserver я использую "EPSG: 2154", но карта и эта TileWMS идеально совпадают, я не понимаю, как.
Мой векторный источник имеет формат -> dataProjection -> code: "EPSG : 4326 ", единицы: градусы
Теперь я пытаюсь понять, как поставить все с той же проекцией, но я много борюсь.
Если я меняю проекцию карты с помощью «EPSG: 2154» (собственный SR C моего слоя в Geoserver), у меня появляется следующая ошибка: Невозможно прочитать свойство 'getExtent' из null.
И если я попытаюсь изменить свою проекцию VectorSource, ничего не произойдет, мое пребывание VectorSource останется в «EPSG: 4326»
var WFSSource = new VectorSource({
format: new GeoJSON(),
url: function(extent) {
return 'http://localhost:8081/geoserver/occi/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=occi%3Aocci&maxFeatures=5&outputFormat=application%2Fjson';
},
projection : "EPSG:2154",
strategy: bboxStrategy
});