Слой, импортированный из геосервера, не отображается с помощью OpenLayers - PullRequest
1 голос
/ 16 июня 2019

Я импортирую слой глубоководной таблицы (система координат 32632) из ​​геосервера, чтобы отобразить его с помощью OpenLayers, но я не могу его найти. Вот письменный код:

var urlgeoserver="http://localhost:8082/geoserver/BV_chiba/wms"


var urlcouches="BV_chiba:deepwatertable"


var deepwatertable = new ol.layer.Tile({
    source:new ol.imageWMS({
        url: urlgeoserver,
        params:{"LAYERS": urlcouches, "TILED":"true"},

    }),
    title: "deepwatertable"
});
deepwatertable.setVisible(true);


var listcouches= [deepwatertable];
var map = new ol.map({
target: 'map',
layers:listcouches,
view: new ol.view({
center: ol.proj.transform([0, 0], 'EPSG:4326', 'EPSG:32632'),
zoom:10
})
});

1 Ответ

1 голос
/ 16 июня 2019

Нет причин, по которым WMS не может быть мозаичным, это более эффективно, так как плитки могут кэшироваться, но ol.layer.Tile необходимо использовать с ol.source.TileWMS.Если вы не хотите использовать плиточный WMS, вы должны использовать ol.layer.Image с ol.source.ImageWMS ol.Map и ol.View, а также заглавные буквы.Проекция (если это не EPSG: 3857) должна быть указана в параметрах источника и просмотра, а также в определении proj4 (и зарегистрирована при использовании OpenLayers 5), и вам нужно будет включить библиотеку proj4 <script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.5.0/proj4.js"></script>

proj4.defs("EPSG:32632","+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs");

ol.proj.proj4.register(proj4); // only needed if using OpenLayers 5

var urlgeoserver="http://localhost:8082/geoserver/BV_chiba/wms"


var urlcouches="BV_chiba:deepwatertable"


var deepwatertable = new ol.layer.Tile({
    source:new ol.source.TileWMS({
        url: urlgeoserver,
        params:{"LAYERS": urlcouches, "TILED":"true"},
        projection: 'EPSG:32632'
    }),
    title: "deepwatertable"
});
deepwatertable.setVisible(true);


var listcouches= [deepwatertable];
var map = new ol.Map({
  target: 'map',
  layers:listcouches,
  view: new ol.View({
    center: ol.proj.transform([0, 0], 'EPSG:4326', 'EPSG:32632'),
    zoom:10,
    projection: 'EPSG:32632'
  })
});
...