Cesium入门(四):叠加显示多个图层

本章介绍Cesium Viewer控件的imageryLayers容器,了解添加和叠加显示多个图层的方法。

主要包括以下内容:

  1. imageLayers图层容器
  2. 添加多个图层

1. imageryLayers图层容器

imageLayers是一个ImageryLayerCollection类型的对象,作为场景Scence类中的一个重要成员,通过添加(add)或者移除(remove)操作,可以动态调整场景中的所有图层,从而使Cesium Viewer可以根据需要来选取一个或多个不同地球覆盖图层。为了便于操作,Cesium Viewer也提供了一个imageLayers只读成员,其内部直接转向了Scence的imageLayers成员。

 2. 添加多个图层

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要准备一个使用 WMTS (Web Map Tile Service) 标准发布的地图服务。如果你没有这样的服务,你可以在网上搜索公共的 WMTS 服务,例如 OpenStreetMap 提供的 WMTS 服务。 然后,你可以使用 Cesium 的 `UrlTemplateImageryProvider` 类来实现 WMTS 服务的叠加。这个类能够读取一个 URL 模板,根据提供的瓦片坐标以及其他参数生成实际的请求 URL,然后下载相应的瓦片。 首先,你需要获取 WMTS 服务的 GetCapabilities 信息,这里有一个使用 OpenLayers 库获取 GetCapabilities 信息的例子: ``` var wmtsCapabilities; var parser = new ol.format.WMTSCapabilities(); $.ajax('http://your_wmts_server/wmts?request=GetCapabilities').then(function(response) { wmtsCapabilities = parser.read(response); }); ``` 接下来,你需要根据 GetCapabilities 信息构造 `UrlTemplateImageryProvider` 的参数。下面是一个例子: ``` var layer = wmtsCapabilities.Contents.Layer[0]; var style = layer.Style[0]; var tileMatrixSet = wmtsCapabilities.Contents.TileMatrixSet[0]; var urlTemplate = layer.ResourceURL[0].template; urlTemplate = urlTemplate.replace('{Style}', style.Identifier); urlTemplate = urlTemplate.replace('{TileMatrixSet}', tileMatrixSet.Identifier); urlTemplate = urlTemplate.replace('{TileMatrix}', '{TileMatrix}'); urlTemplate = urlTemplate.replace('{TileRow}', '{TileRow}'); urlTemplate = urlTemplate.replace('{TileCol}', '{TileCol}'); var provider = new Cesium.UrlTemplateImageryProvider({ url: urlTemplate, maximumLevel: tileMatrixSet.TileMatrix.length - 1, tileWidth: tileMatrixSet.TileMatrix[0].TileWidth, tileHeight: tileMatrixSet.TileMatrix[0].TileHeight, }); ``` 最后,你可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值