一个人的深渊

来我的怀里,或者让我住进你的心里。默然相爱,寂静欢喜……

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

之前发的Cesium离线部署用的是1.72。最近更新到1.137发现变化很多,3dtiles格式变了、加载方式变了,影像瓦片和地形瓦片加载方式也变了……

重新梳理下

1.离线部署

        //配置 Cesium 离线环境
        const viewer = new Cesium.Viewer("cesiumContainer", {
			imageryProvider:false,
            terrainProvider: new Cesium.EllipsoidTerrainProvider({
                ellipsoid:Cesium.Ellipsoid.WGS84
            }),//启用该项能看到地球,以下设置保证没有网络报错
            baseLayerPicker:false,
            geocoder: false,
            sceneModePicker:false,
            navigationHelpButton: false,
            animation: false,
            timeline: false,
            fullscreenButton:false,
            vrButton:false
        });

  2.添加影像、地形,变化是需要用await和fromUrl

        //添加影像底图
		async function loadimagery(){
            const tmsImageryProvider=new Cesium.UrlTemplateImageryProvider({
			url:'http://localhost:8008/GoogleSatWGS84/{z}/{x}/{reverseY}.jpg',
            tilingScheme:new Cesium.GeographicTilingScheme()
            });
            viewer.imageryLayers.addImageryProvider(tmsImageryProvider);   
        }
        //添加地形,保证3dtiles贴在地面上
        async function loadterrain(){
            const myterrainProvider=await Cesium.CesiumTerrainProvider.fromUrl(
			'http://localhost:8008/terrainqm'
            );
            viewer.scene.terrainProvider=myterrainProvider;
        }
        loadimagery()
        loadterrain();

  3.添加3dtiles,必须添加地形才能让3dtiles贴在地面上

        //加载本地3DTiles数据
        function loadLocal3DTiles() {
            const tileset = Cesium.Cesium3DTileset.fromUrl(
                "./osg2cesiumApp_gltf2.0/tileset.json",{enableCollision:true}
            );
            tileset.then(function(_tileset){
                viewer.scene.primitives.add(_tileset);
                viewer.zoomTo(_tileset);
            });
        }
        loadLocal3DTiles();

 

posted on 2026-01-27 20:21  一飞秒的爱  阅读(0)  评论(0)    收藏  举报