影像图层

Cesium支持多种服务来源的高精度影像(地图)数据的加载和渲染。图层支持排序和透明混合。每个图层的 亮度(brightness),对比度( contrast), gamma, hue, and saturation 都可以动态修改。

添加影像的方式

1.初始化 viewer 的时候添加

const viewer = new Cesium.Viewer("cesiumContainer", {
  imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
  })
})

2.通过 viewer.imageryLayers.addImageryProvider 方法添加。

const ArcGisImagery = viewer.imageryLayers.addImageryProvider(new Cesium.ArcGisMapServerImageryProvider({
  url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
}))

 

快速开始

首先初始化一个3D地图,创建一个viewer控件,并且只包含一个Bing影像图层

  

 在viewer里添加一个 Esri ArcGIS 在线服务图层

var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProvider : new Cesium.ArcGisMapServerImageryProvider({
        url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
    }),
    baseLayerPicker : false
});
View Code

 继续添加一个图层

var blackMarble = layers.addImageryProvider(
      new Cesium.ArcGisMapServerImageryProvider({       url:"http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer",
        enablePickFeatures: false,
    })
);
blackMarble.alpha = 0.5; //调整图层的透明度
blackMarble.brightness = 2.0; //调整图层的亮度
View Code

 添加第三个单一图片的图层,它只覆盖某个范围

layers.addImageryProvider(new Cesium.SingleTileImageryProvider({
    url : './images/Cesium_Logo_overlay.png',
    rectangle : Cesium.Rectangle.fromDegrees(-75.0, 28.0, -67.0, 29.75)
}));
View Code

影像providers

前面两个高精度影像数据非常大,大到甚至占用一整块硬盘。所以为了客户端能依据当前视野范围渐进加载,影像经常被切分成很多小的图片,这个过程叫 切片(tiles)。 Cesium使用imagery providers属性支持若干种切片请求标准。大部分影像providers使用HTTP协议 REST 接口方式请求数据。依据切片的组织形式和请求形式不同,影像数据分为几种providers。Cesium支持下列标准:
可参看 相关文档 查看更多

 

 

 

 

 

 

 

 

 

 

posted on 2023-11-08 21:16  紅葉  阅读(27)  评论(0编辑  收藏  举报