首页 > 建站教程 > 地图,GIS教程 >  总结下 Cesium.Cesium3DTileset.fromUrl 的参数正文

总结下 Cesium.Cesium3DTileset.fromUrl 的参数

esium3DTileset.fromUrl 是 Cesium 中加载 3D Tiles 数据集的核心方法,用于从 URL 加载倾斜摄影、BIM、点云等三维模型数据。其参数主要分为 URL 路径 和 配置选项对象,以下是详细总结:


一、基本语法

const tileset = Cesium.Cesium3DTileset.fromUrl(url, options);


二、参数详解

1. url(必填)

类型:String | Resource

说明:3D Tiles 数据集的根目录 URL(通常指向 tileset.json 文件,或包含该文件的目录)。

示例:

"https://example.com/tilesets/building/tileset.json" // 直接指向 tileset.json

"https://example.com/tilesets/terrain/" // 指向包含 tileset.json 的目录

2. options(可选,配置对象)

包含加载、渲染、优化等相关配置,常用属性如下:

类别属性名类型说明
基础配置showBoolean是否显示 tileset,默认 true

modelMatrixMatrix4模型矩阵,用于调整 tileset 的位置、旋转、缩放(默认使用 identity 矩阵)。

maximumScreenSpaceErrorNumber最大屏幕空间误差(控制细节层级 LOD),值越小精度越高但性能消耗越大,默认 16
加载控制maximumMemoryUsageNumber最大内存占用(MB),超出后会卸载远处瓦片,默认 512

loadSiblingsBoolean是否加载同级瓦片(用于平滑过渡),默认 true

preloadAncestorsBoolean是否预加载父级瓦片,默认 true

preloadDescendantsBoolean是否预加载子级瓦片(提前加载高细节),默认 false
渲染控制cullWithChildrenBoundsBoolean是否用子瓦片边界裁剪父瓦片,优化渲染性能,默认 true

dynamicScreenSpaceErrorBoolean是否动态调整屏幕空间误差(根据相机距离),默认 false

skipLevelOfDetailBoolean是否跳过细节层级(强制加载最高精度),默认 false(会降低性能)。
样式与交互styleCesium3DTileStyle瓦片样式(控制颜色、显隐等),支持基于属性的条件样式。

debugShowBoundingVolumeBoolean是否显示瓦片包围盒(调试用),默认 false

debugShowContentBoundingVolumeBoolean显示内容包围盒,默认 false
网络配置requestWaterMaskBoolean是否请求水面掩膜(用于与地形融合),默认 false

requestVertexNormalsBoolean是否请求顶点法线(用于光照计算),默认 false

headersObject加载瓦片时的 HTTP 请求头,如跨域认证信息。


三、常用配置示例

const tileset = Cesium.Cesium3DTileset.fromUrl(
"https://example.com/tilesets/building/tileset.json",
  {
    maximumScreenSpaceError: 8, // 提高精度(值越小精度越高)
    maximumMemoryUsage: 1024,   // 增加内存限制(MB)
    modelMatrix: Cesium.Matrix4.fromTranslation(
      new Cesium.Cartesian3(100, 200, 0) // 平移 tileset
    ),
    style: new Cesium.Cesium3DTileStyle({
      color: {
        conditions: [
          ["${height} > 50", "color('#ff0000')"], // 高度>50的瓦片显红色
          ["true", "color('#ffffff')"]           // 其他显白色
        ]
      }
    }),
    debugShowBoundingVolume: true // 调试时显示包围盒
  }
);// 添加到场景viewer.scene.primitives.add(tileset);


四、注意事项

url 需指向正确的 tileset.json 路径,否则会加载失败。

性能与精度需平衡:maximumScreenSpaceError 过小会导致加载瓦片过多,影响帧率;过大则模型模糊。

样式配置(style)依赖瓦片本身的属性(如 height、type 等),需与瓦片数据中的属性匹配。

网络相关配置(如 headers)用于处理跨域、认证等场景,需根据服务器要求设置。

通过合理配置这些参数,可优化 3D Tiles 的加载效率、渲染效果和交互体验。