Cesium3DTileContent
概述
Cesium3DTileContent 是 CesiumJS 中的一个类,表示 3D Tiles 数据的内容。3D Tiles 是一种将地球表面划分为一系列瓦片的标准,每个瓦片包含了其自己的几何体、纹理、属性等等信息。Cesium3DTileContent 封装了对这些信息的解析和处理,以便于在 CesiumJS 中进行展示和交互。
属性和方法
属性
属性名称 |
类型 |
描述 |
featuresLength |
Number |
获取该 3D Tiles 数据中的要素数量。 |
pointsLength |
Number |
获取该 3D Tiles 数据中的点要素数量。 |
trianglesLength |
Number |
获取该 3D Tiles 数据中的三角形数量。 |
geometryByteLength |
Number |
获取该 3D Tiles 数据中的几何体数据所占用的字节数。 |
texturesByteLength |
Number |
获取该 3D Tiles 数据中的纹理数据所占用的字节数。 |
batchTableByteLength |
Number |
获取该 3D Tiles 数据中的批处理表数据所占用的字节数。 |
contentByteLength |
Number |
获取该 3D Tiles 数据中的全部数据所占用的字节数。 |
方法
方法名称 |
描述 |
hasProperty(batchId, name) |
判断指定 ID 的要素是否具有指定名称的属性。 |
getProperty(batchId, name) |
获取指定 ID 的要素指定名称属性的属性值。 |
setProperty(batchId, name, value) |
设置指定 ID 的要素指定名称属性的属性值。 |
getFeature(batchId) |
获取指定 ID 的要素。 |
applyDebugSettings(batchId) |
应用调试设置。 |
示例
var viewer = new Cesium.Viewer("cesiumContainer");
var tileset = new Cesium.Cesium3DTileset({
url: "https://assets.cesium.com/01968/tileset.json"
});
viewer.scene.primitives.add(tileset);
tileset.readyPromise.then(function(tileset) {
var tile = tileset.root.children[0];
var content = tile.content;
console.log("要素数量:", content.featuresLength);
console.log("点数量:", content.pointsLength);
for (var i = 0; i < content.featuresLength; ++i) {
var feature = content.getFeature(i);
var properties = feature.getPropertyNames();
console.log("要素" + i + "的属性:");
for (var j = 0; j < properties.length; ++j) {
var value = feature.getProperty(properties[j]);
console.log(properties[j] + ":" + value);
}
console.log("-------------------");
}
});
参考文献