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

Cesium入门(四):叠加显示多个图层,第1张

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

主要包括以下内容:

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

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

 2. 添加多个图层

在Cesium入门(三):加载WMS地图服务节中,我们使用imageProvider加载了自定义的WMS地图服务,但是在地图可见区域之外的地球却没有什么覆盖物,这就是因为imageLayers中只有一个自定义的地图,缺少一个覆盖全球的图层。如果我们不直接赋值给imageProvider,而是将imageProvider设置为null或者不设置此参数,让Cesium去自动调用createWorldImagery()函数来加载一个全球的“底图”,然后再将自定义的图层通过addImageProvider()函数加入到图层容器中,此时的Viewer场景中将会保留这两个图层,从而让地球显示更加真实。

主要代码如下:

    

在上述代码中,imageryProvider行也可以直接删除,但是如果将imageryProvider设置为false就会又看到Cesium入门(三):加载WMS地图服务中的那个蓝色的地球了。同时,还可以看到,由于在初始化Viewer时就设置了默认的图层,所以整个地球都被默认的Bing地图所覆盖,自定义的WMS图层在默认图层之上显示。由于这两个图层来自于不同的提供商,所以在某些地方还是能看到明显的细节和颜色上的差异。如果这个自定义图层是使用Bing地图制作,并逐层缓冲瓦片的话,就会几乎看不见这样的差异。

通过imageLayers可以同时加载多个图层,特别是在无法连接互联网的地方,所有的公共地图服务都会无法访问,此时可以通过设置自己的离线地图服务器来提供最基本的地图服务。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/996459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存