将本地shape文件发布到geoserver中,使用openlayers以wms服务的方式进行调用,有两种调用方式,一种图层以ol.layer.Image形式进行展示,另一种以ol.layer.Tile形式进行展示。
下面对两种方式的详细说明记录:
方法一:ol.layer.Image形式调用
使用这种方式,是将图层的当前视图作为一张图片进行请求加载,而不是一系列256*256的小图片构成:
var wmsLayer = new ol.layer.Image({
visible: true,
source: new ol.source.ImageWMS({
ratio: 1,
url: wmsUrl,
params: {
'FORMAT': 'image/jpeg',
'VERSION': '1.1.1',
LAYERS: layerName,
STYLES: '',
}
})
});

方法二:ol.layer.Tile形式调用
使用这种方式,是将图层的当前视图作为一系列256*256的小切片进行加载,加载方式类似地图切片,加载速度感觉更快,减少出现地图全部空白的情况。但在加载有注记的wms服务时,需要在geoserver中对服务的样式进行设置,避免重复出现注记。
var wmsTileLayer = new ol.layer.Tile({
visible: true,
source: new ol.source.TileWMS({
url: wmsUrl,
params: {
'FORMAT': 'image/jpeg',
'VERSION': '1.1.1',
tiled: true,
LAYERS: layerName,
STYLES: '',
}
})
});
注意:如果不对geoserver进行设置,则每一张切片都会有一个地市名字,需要在geoserver的样式中设置只在地图中心。

