Cesium加载GeoServer的WMS/WMTS服务(含源代码)

1.在项目中需要用Cesium加载GeoServer已经发布好的WMS与WMTS服务,现将其详细的实现过程记录。

2.对于WMS服务的加载,实现过程相对较简单,通过addImageryProvider()方法即可加载。

var wmsImageryProvider = new Cesium.WebMapServiceImageryProvider({
			url : ' ',  //数据路径
			layers : 'topp:states',  //名称
			parameters : {
				transparent : true,     
				format : 'image/png',
				srs: 'EPSG:4326',
				styles:''
			}
		});
		viewer.imageryLayers.addImageryProvider(wmsImageryProvider); //加载

3.对于WMTS服务,比WMS复杂,具体步骤如下:

首先打开GeoServer,在右侧的服务能力找到WMTS,点击打开。

Cesium加载GeoServer的WMS/WMTS服务(含源代码)_第1张图片

搜索到我们需要发布的图层,找到如下链接并复制。

Cesium加载GeoServer的WMS/WMTS服务(含源代码)_第2张图片

在Cesium中,加载代码如下所示,复制的链接并不是直接拿来用而是将其中的{TileMatrix}改为{TileMatrixSet}:{TileMatrix},同时我发布的是WGS84坐标系的数据,但是EPSG是3857并不能加载,通过查询得知需要修改为900913即可加载。

var wmtsLayer = new Cesium.WebMapTileServiceImageryProvider({
		    url : 'http://localhost:8088/geoserver/gwc/service/wmts/rest/test:abc/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',  //修改将{TileMatrix}改为{TileMatrixSet}:{TileMatrix}
		    layer : 'test:shandong',
			style:'',
		    format : 'image/png',
		    tileMatrixSetID : 'EPSG:900913', //EPSG需修改
		    maximumLevel: 20
		  })
		viewer.imageryLayers.addImageryProvider(wmtsLayer);

Cesium加载GeoServer的WMS/WMTS服务(含源代码)_第3张图片

完整源代码:



	
		
		加载WMS/WMTS
		
		
		
	
	
	
		

你可能感兴趣的:(GIS相关技术,Cesium,gis)