cesium1.140以上版本加载地形

1、本地地形加载 使用fromUrl方式
需注意:url写法
"./terrain",错误写法"./terrain/layer.json"或"./terrain/"

const localTerrain = await Cesium.CesiumTerrainProvider.fromUrl("./terrain",{

requestWaterMask: false,

requestVertexNormals: true

});

2、在线地形加载 延迟使用createWorldTerrainAsync

const terrain = await Cesium.createWorldTerrainAsync({

requestWaterMask: true,

requestVertexNormals: true

});

初始化加载使用fromWorldTerrain

const viewer = new Cesium.Viewer('cesiumContainer', {

terrain: Cesium.Terrain.fromWorldTerrain(), //在线地形

animation: false,

timeline: false

});

3、完整代码写法

复制代码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <title>terrain地形 Cesium1.141</title>
  <style>
    #viewer {
      width: 100vw;
      height: 100vh;
      margin: 0;
      padding: 0;
    }
  </style>
  <!-- 引入cesium -->
  <script src="https://cdn.jsdelivr.net/npm/cesium@1.141.0/Build/Cesium/Cesium.js"></script>
  <link href="https://cdn.jsdelivr.net/npm/cesium@1.141.0/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>

<body>
  <div id="viewer"></div>
  <script>
    Cesium.Ion.defaultAccessToken = "你的token";
    const viewer = new Cesium.Viewer('viewer', {
      baseLayerPicker: false,
      // 关闭默认在线地形
      terrainProvider: Cesium.EllipsoidTerrainProvider
    });
      viewer.imageryLayers.addImageryProvider(
        new Cesium.UrlTemplateImageryProvider({
          url: "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8",
          layer: "tdtAnnoLayer",
          style: "default",
          format: "image/jpeg",
          tileMatrixSetID: "GoogleMapsCompatible",
        }),
      );
    const terrainType = "global";
    (async function(){
            
            //全球在线地形
            const terrain = await Cesium.createWorldTerrainAsync({
                requestWaterMask: true,
                requestVertexNormals: true
            });
                
            //本地局部地形
            const localTerrain = await Cesium.CesiumTerrainProvider.fromUrl("./terrain",{
                requestWaterMask: false,
                requestVertexNormals: true
            });

            viewer.terrainProvider = terrainType = "global" ? terrain : localTerrain;

            // 定位到地形范围中心点
            viewer.camera.flyTo({
                destination:Cesium.Cartesian3.fromDegrees(116.41,39.90,5000)
            })
            viewer.scene.debugShowTerrainTiles = true;
    })();
  </script>
</body>

</html>
相关推荐
杨超越luckly10 小时前
Agent应用指南:巨幕之下 · 中国 IMAX 影院205城的空间布局
人工智能·arcgis·html·agent·数据可视化
用户83134859306982 天前
Vue3+Cesium实现阴天乌云+下雨天气特效
vue.js·webgl·cesium
GISerQ.2 天前
DWG格式文件导入到ArcGIS中
arcgis·shp·cad文件·dwg文件
En^_^Joy6 天前
Vue项目创建与入口配置全攻略
前端·vue.js·arcgis
图件制作GIS,储量计算7 天前
补充耕地项目类、非项目类资料清单
arcgis
不在逃避q7 天前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
GISerQ.8 天前
ArcGIS实现矢量拓扑检查与修复
arcgis·拓扑检查·拓扑修复
NutShell Wang8 天前
零依赖架构实战:451个HTML文件如何用63KB平均体积交付3584个交互模块
前端·人工智能·arcgis·npm·开源·html·vibe coding
开开心心就好9 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频