本文衔接上篇文章:
不睡觉的怪叔叔:Cesium多源数据加载之影像图层(一)zhuanlan.zhihu.com一、加载WMS服务
OGC的WMS服务就不赘述了,可以去OGC官网了解:
The Home of Location Technology Innovation and Collaborationwww.ogc.org或者查看这篇文章:
不睡觉的怪叔叔:OpenLayers教程十六:多源数据加载之WMSzhuanlan.zhihu.com1.1、加载ArcGIS Server发布的WMS服务
可以查看这篇文章了解如何在ArcGIS Server中发布WMS服务:
不睡觉的怪叔叔:ArcGIS Server教程:发布WMS服务zhuanlan.zhihu.com在Cesium中通过Cesium.WebMapServiceImageryProvider类去加载WMS服务,直接来看一个示例:
首先需要在ArcGIS Server中发布一个WMS服务,我这里发布了一个广东路网数据的WMS服务gd_roads_wms,然后在ArcGIS Server Manager中找到对应的URL:
然后在从ArcGIS Server的REST目录中找到图层的编号:
为什么要去找到图层编号呢?因为ArcGIS Server中有图层组的概念(GeoServer也有),所以要找到图层编号,用以指定访问该图层。
<!DOCTYPE html>
以上参数中,layers即指定需要访问的图层的图层编号,transparent:true表示将WMS服务图层的背景透明化。
1.2、加载GeoServer发布的WMS服务
首先也在GeoServer上发布一个WMS服务:
然后使用Cesium加载:
<!DOCTYPE html>
可以发现参数和前面加载ArcGIS Server发布的WMS服务的参数有几处不同:
- layers:'guangdong:gd_roads' —— 因为GeoServer将图层组织为"工作区:图层名"的形式,所以需要根据这个形式指定特定图层。
- version:'1.3.0' —— 使用WMS的1.3.0版本加载服务,默认情况下Cesium会使用1.1.1版本。
- crs:'CRS:84' —— 手动指定坐标系为WGS84。这里需要注意的是:如果version参数是默认的1.1.1版本的话,就需要通过srs参数(EPSG格式)指定特定坐标系。
二、加载ArcGIS独有的图层服务
刚才说到ArcGIS Server发布的WMS服务,另外ArcGIS Server默认发布的是ArcGIS Server独有的图层服务,如果没有切片就是动态图层服务,如果进行了切片就是瓦片地图服务。
ArcGIS Server通常自带一个图层服务,如下所示:
在Cesium中使用Cesium.ArcGisMapServerImageryProvider类加载ArcGIS Server独有的图层服务,所以我们可以在Cesium中使用REST接口加载上面的这个服务:
<!DOCTYPE html>