Cesium 建筑体添加和使用

 // 加载新地图
    var esri = new Cesium.ArcGisMapServerImageryProvider({
        url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
    })
    Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxN2U5YjQ4Mi0yMzBjLTQ2YTAtYmNhYi01MTExYmI0YWQ5YmMiLCJpZCI6MTA3ODM1LCJpYXQiOjE2NjMzODIzOTZ9.mPq7a4YZgM7DyVhhbwrResOlwywZZezwzTiT00euXZk'
    const viewer = new Cesium.Viewer("container",{
        baseLayerPicker:false, // 当前基础属性 隐藏
        imageryProvider: esri,
        terrainProvider:new Cesium.CesiumTerrainProvider({   //CesiumTerrainProvider 是将地形数据,转换为cesium可以访问的格式
            url:Cesium.IonResource.fromAssetId(1),  // url放入地形服务器的地址
            requestVertextNormals:true, // 增加法线,用于提供光照效果
            requestWaterMask:true //  增加水面光照效果
        })
    }) 

  //添加建筑物
    // var tileset = viewer.scene.primitives.add( //viewer中的scene是Cesium虚拟场景中所有3D图形对象和状态的容器,它的primitives属性用于获取大量的基元素集合
    //         new Cesium.Cesium3DTileset({ // Cesium3DTileset是Cesium用于传输海量异构3D地理空间数据集
    //             url:Cesium.IonResource.fromAssetId(96188),
    //         }) 
    // ) 
    const tileset = viewer.scene.primitives.add( // 纽约市建筑物的数据
        new Cesium.Cesium3DTileset({
            url: Cesium.IonResource.fromAssetId(75343),
        })
    );

// 添加相机信息
    // viewer.camera.setView({
    //      destination:Cesium.Cartesian3.fromDegrees(121.49,31.23,3000), //destination用于设置经纬度位置和相机高度, 为了展示建筑物效果,将位置定位在陆家嘴
    //     orientation:{
    //         heading:0,
    //         pitch:-90,
    //         roll:0
    //     }
    // })
    viewer.camera.setView({
        destination:new Cesium.Cartesian3(1332761,-4662399,4137888),
        orientation:{
            heading:0.60,
            pitch:-0.66
        }
    })
    //对模型数据集合样式进行修改,就是修改它的style
    // tileset.style = new Cesium.Cesium3DTileStyle({
    //     color:"color('blue',0.5)", //第一个参数颜色,第二个透明度
    //     shwo:true
    // })

    tileset.style = new Cesium.Cesium3DTileStyle({
    color:{
      // 条件判断具体的颜色
      conditions : [
        ['${Height} >= 300','rgba(45,0,75,0.1)'],
        ['${Height} >= 200','rgb(102,71,151)'],
        ['${Height} >= 100','rgba(170,162,204,0.5)'],
        ['${Height} >= 50','rgba(224,226,238,0.5)'],
        ['${Height} >= 25','rgba(252,230,200,0.5)'],
        ['${Height} >= 10','rgba(248,176,87,0.5)'],
        ['${Height} >= 5','rgba(198,106,11,0.5)'],
        ["true","rgb(127,59,8)"]
      ]
    }
  })

  

 

posted @ 2022-11-07 10:19  菜鸟程序员的总结  阅读(400)  评论(0)    收藏  举报