Cesium3DTileFeature是表示3D瓦片中要素的类。用于访问瓦片中的要素属性,以及控制要素的可见性、显隐等。
Cesium3DTileFeature(tileset, content, batchId)
创建一个Cesium3DTileFeature实例。参数说明如下:
tileset : Cesium3DTileset类型,3D瓦片集合。content : Cesium3DTileContent类型,3D瓦片的内容。batchId : Number类型,要素的batchId值。以下是Cesium3DTileFeature对象的一些重要属性:
content : Cesium3DTileContent类型,当前要素所属的具体瓦片内容。tileset : Cesium3DTileset类型,当前要素所属的3D瓦片集合对象。batchId : Number类型,当前要素的batchId值,用于标识不同的要素。primitive : Cesium.Primitive类型,当前要素所属的Primitive对象。properties : Object类型,用于存储当前要素的属性信息,可以通过添加或设置属性的方式来修改要素的属性值。show : Boolean类型,当前要素的可见性,可以通过设置这个属性来控制要素的显隐。以下是Cesium3DTileFeature对象的一些重要方法:
getProperty(propertyName)获取当前要素的某个属性值。
参数说明:
propertyName : String类型,属性名称。返回值:
任意类型,当前要素的属性值。setProperty(propertyName, propertyValue)设置当前要素的某个属性值。
参数说明:
propertyName : String类型,属性名称。propertyValue : 任意类型,属性值。返回值:
hasProperty(propertyName)判断当前要素是否存在某个属性。
参数说明:
propertyName : String类型,属性名称。返回值:
Boolean类型,当前要素是否存在该属性。removeProperty(propertyName)移除当前要素的某个属性。
参数说明:
propertyName : String类型,属性名称。返回值:
getPropertyNames(results)获取当前要素的所有属性名称。
参数说明:
results : Array类型,可选参数,用于存储属性名称。返回值:
Array类型,包含当前要素的所有属性名称。getBoundingSphere(result)获取当前要素的包围球。
参数说明:
result : Cesium.BoundingSphere类型,可选参数,用于存储包围球。返回值:
Cesium.BoundingSphere类型,当前要素的包围球。以下是Cesium3DTileFeature对象所支持的事件:
propertyChanged : 当要素的属性值发生变化时触发该事件。事件处理函数的参数说明:
feature : Cesium3DTileFeature类型,当前要素对象。propertyName : String类型,发生变化的属性名称。propertyValue : 任意类型,变化后的属性值。var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: 'http://localhost:8080/tiles/tileset.json'
}));
tileset.readyPromise.then(function(tileset) {
var content = tileset.getTileContent(tileset.root);
if (content.featuresLength > 0) {
var feature = new Cesium.Cesium3DTileFeature(tileset, content, 0);
var position = feature.getProperty('position');
console.log('position:', position);
}
});
以上代码从tileset对象中获取第一个要素对象,并获取该要素的position属性值。