openlayer3 系列 3 - 加载 geoserver 图层

1.加载geoserver wms服务

//url为geoserver的wms服务地址
lyr = new ol.layer.Tile({
            source:new ol.source.TileWMS({
                        extent:[112,22,114,24],
                        params:{
                            'LAYERS':'test:a_river',
                            'VERSION':'1.1.0',
                            'BBOX':[113.029319763184,22.7097873687744,113.95068359375,23.7140617370605],
                            'CRS':'EPSG:4326',
                            'WIDTH':704,
                            'HEIGHT':768
                        },
                        projection:"EPSG:4326",
                        url:url
                        })
                });

2.加载geoserver wfs服务

lyr = new ol.layer.Vector({
            source:new ol.source.Vector({
                url:function(extent,resolution,projection){
                        return 'http://localhost:8088/geoserver/test/ows?service=wfs&version=1.0.0&request=getfeature&typename=test:a_river&outputFormat=application/json&bbox=' + extent.join(',');
                    },
                format:new ol.format.GeoJSON(),
                strategy:ol.loadingstrategy.bbox
            }),
            style:new ol.style.Style({
                stroke:new ol.style.Stroke({
                    color:'rgba(0,0,255,1.0)',
                    width:2
                })
            })
    })

3.加载gerserver wmts服务

var matrixIds = [],resolutions = [];
//maxExtent为发布的图层范围
var maxExtent = [109.66140013800003,20.22346267200004,117.3041534420001,25.520298004000036];

var maxResolution = ol.extent.getWidth(maxExtent) / 256;
//切片级数根据各自情况,此处4个级别的切片,matrixId为每一级的id
for(var i = 0;i <= 3;i++){
    matrixIds[i] = 'grid_gdxzqh:'+i;
    resolutions[i] = maxResolution / Math.pow(2,i);
}
lyr = new ol.layer.Tile({
    source:new ol.source.WMTS({
            url:'http://localhost:8089/geoserver/gwc/service/wmts',
            layer:'test:imagermap',
            tileGrid:new ol.tilegrid.WMTS({
                        extent:maxExtent,
                        resolutions:resolutions,
                        matrixIds:matrixIds
            }),
            matrixSet:'grid_imagemap',
            format:'image/png',
            projection:'EPSG:4326'
    })
})

将不定期更新资源,欢迎持续关注


想获得更多的学习知识请关注微信公众号:西北码农或扫下方二维码

要重新加载OpenLayers中的GeoServer图层,可以按照以下步骤进行操作。 首先,确保已经在OpenLayers中定义了要加载图层。可以使用`new ol.layer.Tile`函数来创建一个新的瓦片图层,然后将其添加到地图中。例如: ```javascript var layer = new ol.layer.Tile({ source: new ol.source.TileWMS({ url: &#39;http://localhost:8080/geoserver/wms&#39;, params: {&#39;LAYERS&#39;: &#39;myworkspace:mylayer&#39;}, serverType: &#39;geoserver&#39; }) }); map.addLayer(layer); ``` 接下来,当需要重新加载图层时,可以使用OpenLayers中的`getSource()`函数来获取图层的源,并调用源的`updateParams()`方法来更新参数。例如: ```javascript // 获取图层的源 var source = layer.getSource(); // 更新参数并重新加载图层 source.updateParams({&#39;time&#39;: Date.now()}); ``` 在`updateParams()`方法中,我们传入一个包含需要更新的参数的JavaScript对象。在这个例子中,我们使用`Date.now()`来生成一个随机时间戳,以确保每次更新都是唯一的。 最后,可以使用OpenLayers中的`getLayers()`函数来获取地图中的所有图层,并调用每个图层的`getSource()`和`updateParams()`方法来重新加载它们。例如: ```javascript // 获取地图中的所有图层 var layers = map.getLayers(); // 对每个图层执行重新加载 layers.forEach(function (layer) { var source = layer.getSource(); source.updateParams({&#39;time&#39;: Date.now()}); }); ``` 这样,所有在OpenLayers中定义的GeoServer图层都将被重新加载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值