You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cesium初学者求助:如何创建指定位置的3D Tile图层?

旧金山区域3D Tile图层创建详细指导

一、准备数据源

  • 若没有现成的3D Tile数据,先获取旧金山附近的3D数据:
    • 可从公开数据集提取,比如USGS的3D建筑数据集;也能用摄影测量软件(如ContextCapture)处理旧金山区域的航拍照片生成3D模型
    • 确保数据坐标系为WGS84(EPSG:4326),或可转换为Cesium支持的坐标系(如EPSG:3857)

二、转换为3D Tiles格式

  • 使用Cesium官方工具3d-tiles-tools完成转换:
    1. 整理你的3D模型(如GLB/GLTF、OBJ格式),保证模型分块合理
    2. 创建tileset.json配置文件,指定几何数据路径、边界范围、LOD等级等参数
    3. 执行转换命令:
      3d-tiles-tools convert --input ./san-francisco-model.glb --output ./sf-tileset
      
  • 如果你用的是I3S格式数据(对应你参考的示例类型),可直接跳过转换步骤,后续直接加载

三、在Cesium中加载图层

加载3D Tiles瓦片集

  1. 初始化Cesium Viewer:
    const viewer = new Cesium.Viewer('cesiumContainer');
    
  2. 加载本地或部署好的3D Tiles:
    const sfTileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
        url: './sf-tileset/tileset.json' // 替换为你的瓦片集路径
    }));
    
  3. 定位到旧金山区域:
    viewer.camera.flyTo({
        destination: Cesium.Cartesian3.fromDegrees(-122.4194, 37.7749, 500)
    });
    

加载I3S格式图层(对应参考示例)

直接修改示例代码中的数据源路径,替换为你的旧金山I3S数据地址:

const i3sLayer = await Cesium.I3SDataProvider.fromUrl('./sf-i3s-data/layer.json');
viewer.scene.primitives.add(i3sLayer);

四、调试与优化

  • 打开Cesium Inspector(按F8)查看瓦片加载状态,排查加载失败问题
  • 调整瓦片集的LOD参数,保证缩放时模型加载流畅
  • 精简模型面数,移除不必要的细节,避免性能卡顿

内容的提问来源于stack exchange,提问作者Beginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 18:04:58