openlayers学习(二) 加载geoserver发布的wms图层
要达到的效果显示geoserver中发布的wms图层,数据使用geoserver自带的示例数据。安装后geoserver后就有的数据
官网示例链接:https://openlayers.org/en/latest/examples/wms-custom-tilegrid-512x256.html
1、创建源TileWMS
var wmsSource = new ol.source.TileWMS({ url: 'http://localhost:8080/geoserver/tiger/wms',//端口号要改成自己的 params: { 'FORMAT': format, 'VERSION': '1.1.1', tiled: true, "LAYERS": 'tiger:poi',//tiger--图层的名称空间,poi--图层名称 "exceptions": 'application/vnd.ogc.se_inimage', }, serverType: 'geoserver',//服务类型geoerver crossOrigin: 'anonymous', });
上面使用的图层来自geoserver
2、创建tile
var wmsLayer = new ol.layer.Tile({ source: wmsSource, });
3、加载到map中
map.addLayer(wmsLayer);
效果如下
完整代码;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../lib/openlayerv6.4.3/build/ol.js"></script> <link rel="stylesheet" href="../lib/openlayerv6.4.3/css/ol.css"> <style> .map { width: 100%; height: 600px; } a.skiplink { position: absolute; clip: rect(1px, 1px, 1px, 1px); padding: 0; border: 0; height: 1px; width: 1px; overflow: hidden; } a.skiplink:focus { clip: auto; height: auto; width: auto; background-color: #fff; padding: 0.3em; } #map:focus { outline: #4A74A8 solid 0.15em; } </style> </head> <script> var map; function init() { var rootLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ url: 'http://mt2.google.cn/vt/lyrs=y&hl=zh-CN&gl=CN&src=app&x={x}&y={y}&z={z}&s=G' }) //加载谷歌影像地图 }); var format = 'image/png'; var wmsSource = new ol.source.TileWMS({ url: 'http://localhost:8080/geoserver/tiger/wms',//端口号要改成自己的 params: { 'FORMAT': format, 'VERSION': '1.1.1', tiled: true, "LAYERS": 'tiger:poi', "exceptions": 'application/vnd.ogc.se_inimage', }, serverType: 'geoserver', crossOrigin: 'anonymous', }); var wmsLayer = new ol.layer.Tile({ source: wmsSource, }); var view = new ol.View({ center: [-74.0087, 40.7122], projection: 'EPSG:4326', zoom: 15 }); map = new ol.Map({ layers: [rootLayer], target: 'map', view: view }); map.addLayer(wmsLayer); } </script> <body οnlοad="init()"> <div id="map" class="map" tabindex="0"></div> </body> </html>