首页 > 其他分享 >cesium基础-加载影像

cesium基础-加载影像

时间:2022-08-16 17:24:23浏览次数:94  
标签:imageryLayers Cesium cesium 图层 加载 ImageryProvider 影像 ImageryLayer

ImageryLayerCollection类

Cesium.Viewer类对象中包含的imageryLayers属性就是ImageryLayerCollection类的实例,它包含了当前Cesium应用程序所有的ImageryLayer类对象,即所有影像图层,所以Cesium种的影像图层可以添加多个。
Cesium.ImageryLayerCollection类是ImageryLayer类对象的容器,它可以装载、放置多个ImageryLayer或ImageryProvider类对象,而且它内部放置的ImageryLayer或ImageryProvider类对象是有序的。

 

 

 

 

ImageryLayer类
Cesium.ImageryLayer类用于表示Cesium中的影像图层,它就相当于皮毛、衣服,将数据源包裹在内,它需要数据源(imageryProvider)为其提供内在丰富的地理空间信息和属性信息。同时,通过该类还能设置影像图层相关属性,比如透明度、亮度、对比度、色调等。

 

 

ImageryProvider类
Cesium.ImageryProvider类及其子类封装了加载各种影像图层的方法,其中Cesium.ImageryProvider类是抽象类、基类或者可将其理解为接口,它不能被直接实例化上图中Cesium.ImageryLayer的第一个参数就是需要的图层数据,我们可以把ImageryProvider看作是影像图层的数据源(包裹在ImageryLayer类内部),我们想使用哪种影像图层数据或服务就用对应的ImageryProvider子类去加载,目前Cesium(1.6.2)提供了以下14种ImageryProvider。

 

 示例1:

const imageryLayers = viewer.scene.imageryLayers;

    const osmImageryProvider = new Cesium.UrlTemplateImageryProvider({
      url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
      subdomains: ["a", "b", "c"],
    });
    imageryLayers.addImageryProvider(osmImageryProvider);

示例2:

var cesiumAsset= "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjOWJkZDkxYS0yNTg3LTQxNzktYmY2MC1iZTRiN2M4ZjcxMjMiLCJpZCI6Njg0NDAsImlhdCI6MTYzMjU3OTQwOX0.5FzD9jZYCHbOziDOF3VNG5ErOhP3TzPaCZHZudmU5zg";
    var tiandituTk='9b8b9b2f9280bb14599a178b89973ffa';
    // 服务负载子域
    var subdomains=['0','1','2','3','4','5','6','7'];
    Cesium.Ion.defaultAccessToken = cesiumAsset;


    const viewer = new Cesium.Viewer("cesiumContainer", {
     infoBox: false, // If set to false, the InfoBox widget will not be created.
    //    baseLayerPicker: false,
    });

    const imageryLayers = viewer.scene.imageryLayers;

    var tdt_base = new Cesium.WebMapTileServiceImageryProvider({
        //影像底图
        url: "http://t{s}.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk="+tiandituTk,
        subdomains: subdomains,
        layer: "tdtImgLayer",
        style: "default",
        format: "image/jpeg",
        tileMatrixSetID: "GoogleMapsCompatible",//使用谷歌的瓦片切片方式
        show: true
    });

    var tdt_legend = new Cesium.WebMapTileServiceImageryProvider({   
        //影像注记
        url: "http://t{s}.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk="+tiandituTk,
        subdomains: subdomains,
        layer: "tdtCiaLayer",
        style: "default",
        format: "image/jpeg",
        tileMatrixSetID: "GoogleMapsCompatible",
        show: true
    })

    imageryLayers.addImageryProvider(tdt_base);
    imageryLayers.addImageryProvider(tdt_legend);

    // 将三维球定位到中国
    viewer.camera.flyTo({
            destination: Cesium.Cartesian3.fromDegrees(103.84, 31.15, 17850000),
            orientation: {
                heading :  Cesium.Math.toRadians(348.4202942851978),
                pitch : Cesium.Math.toRadians(-89.74026687972041),
                roll : Cesium.Math.toRadians(0)
            },
            complete:function callback() {
                // 定位完成之后的回调函数
            }
        });

 

 

 

 

 

参考博客:https://blog.csdn.net/ls870061011/article/details/122710390?spm=1001.2014.3001.5501

https://blog.csdn.net/sinat_31213021/article/details/119873221

https://blog.csdn.net/m0_37755995/article/details/123525107

标签:imageryLayers,Cesium,cesium,图层,加载,ImageryProvider,影像,ImageryLayer
From: https://www.cnblogs.com/wq805/p/16592251.html

相关文章

  • yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因
    使用VSCode的命令行安装yarn(npminstallyarn-g),安装成功后,查看版本报错原因:命令行执行策略,默认设置为Restricted不加载配置文件或运行脚本。需变更设置为RemoteSi......
  • 解决 openlayers 加载高德地图拉伸
    在使用openlayers加载高德地图瓦片时,会出现图片、标注等有一定的形变、拉伸等。为什么会出现这样的问题?原先代码exportdefault{components:{MapTool},data......
  • cesium教程3-加载3dtile模型,并调整位置
      直接上示例代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js-->......
  • cesium教程2-加载显示地形地图
      上面地形数据,是调用cesium官方的地图服务,需要先注册cesium账户,配置cesium的账户token才行1、在线地形服务的示例代码如下<!DOCTYPEhtml><htmllang="en"><head......
  • cesium教程1-加载显示地图
    1、完整示例代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>cesium示例</title><!--引用cesium的js和css,天地图的扩展js--><......
  • Bert bert-base-uncased 模型加载
    1、下载模型相关文件到本地路径https://huggingface.co/bert-base-uncased/tree/main2、修改模型加载,注释为修改前......
  • Element cascader动态加载
    一开始也是网上查找:https://blog.csdn.net/lgh1206/article/details/113932595 看的这位博主的,他是自己创建的数据我这边是与后端联调: <el-cascader......
  • 加载远程vue文件 vue3-sfc-loader
    需求项目在写一些需求的时候,现场可能会有些变动,但是不想从新打包,这种情况可以考虑单独不打包的vue文件注意vue2import{loadModule}from'vue3-sfc-loader/dist/vue2......
  • 微信小程序获取数据时显示加载中
    微信小程序在获取数据时页面显示数据需要加载时间,这时可以使用wx.showLoading(),如果小程序内多次使用 wx.request时,可以对其进行封装在utils文件夹下新建文件network.js......
  • cesium教程-无人机航拍倾斜摄影素材用ContextCapture转换成OSGB格式
    首先软件的下载和安装参考下面链接http://www.xue51.com/soft/53013.html 0、首先打开软件,要打开2个哦。打数据处理开后台ContextCaptureEngine打开处理工具Contex......