WebGL 系列——(二)Cesium 图层

313 阅读3分钟

一、基本概念

(一)什么是图层

我所理解的图层,就是把一层又一层半透明的纸叠加到一起,然后在上面看到的最终组合出来的效果。

gis 地图图层主要分以下几大类:

  • 地形图层:地图场景的基石和骨骼
  • 栅格瓦片图层:地图场景的皮肤
  • 矢量数据图层:地图场景中的精确数据
  • 三维模型图层:呈现更细节的三维
  • 图层组:方便组合管理
  • 其他可视化图层:呈现其他可视化效果

(二)图层中的数据分类

常用的数据有两种:

  • 矢量数据:矢量数据是利用几何中点、线、面及其组合体来表示地理实体空间分布的一种数据组织方式。图层中的矢量数据主要指点、线、面坐标信息和属性信息的文件,这种文件一般是.shp格式的。无论地图放大缩小到什么级别,矢量数据本身是不会失真的。
  • 栅格数据:栅格数据就是将空间分割成有规律的网格,每一个网格称为一个单元(像素),并在各个单元上赋予相应的属性值来表示实体的一种数据形式。我们平时使用的栅格数据,通俗的说就是一线图片(遥感影像数据也是栅格数据)。当栅格数据放大到一定级别(超过像素识别范围)时,可以发现数据会出现失真现象。

(三)什么又是瓦片

  • 瓦片地图金字塔模型是一种多分辨率层次模型,在统一的空间参照下,根据用户需要以不同分辨率进行存储与显示,形成分辨率由粗到细、数据量由小到大的金字塔结构。所表示的地理范围不变,金字塔越往底层所表示的地图信息越详细,比例尺越大。
  • 首先确定地图服务平台提供的缩放级别的数量N,把缩放级别最高、地图比例尺最大的地图图片作为金字塔的底层,即第0层,并对其进行分块,从地图图片的左上角开始,从左至右、从上至下进行切割,分割成相同大小(比如256x256像素)的正方形地图瓦片,形成第0层瓦片矩阵,在第0层地图图片的基础上,按第2x2像素合成一个像素的方法生成第1层地图图片,并对其进行分块,分割成与下一层相同大小的正方形地图瓦片,形成第1层瓦片矩阵,采用同样的方法生成第2层瓦片矩阵...直到第N-1层。

二、Cesium 中图层的写法

(一)在初始化Cesium的时候要写好两种图层

image.png

  • 第一是影像图层:用于初始化加载地球上的底图,是自带的?还是三方的?电子还是影像?带不带道路?要不要注记?均可以在这里进行初始化。
//卫片 " http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}", 
//路网" https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=11"   
//地名" https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=4"
//地名+路网 " http://webst01.is.autonavi.com/appmaptile?style=8&x={x}&y={y}&z={z}",
//矢量切片风格 " http://webrd01.is.autonavi.com/appmaptile?&scale=1&lang=zh_cn&style=8&x={x}&y={y}&z={z}",
  • 第二是地形图层:用于真实的展现地形、山脉、河流等三维效果,也能避免加载城市白膜后底部悬空的 bug。

(二)声明许多影像图层用于叠加或者切换

  • 声明路网图层并叠加到地球上

image.png

  • 声明夜间地球图层用于切换

image.png

Honeycam 2023-03-08 11-36-16.gif