Cesium3DTileFeature

new Cesium.Cesium3DTileFeature()

Cesium3DTileset 的一个功能。

还提供对存储在切片的批处理表中的要素属性的访问 作为显示/隐藏特征并通过以下方式更改其高亮颜色的能力 Cesium3DTileFeature#showCesium3DTileFeature#color

Cesium3DTileFeature 对象的修改具有瓦片的 内容。 如果图块的内容已卸载,例如,由于它超出视图并需要 要在缓存中为可见切片释放空间,请监听 Cesium3DTileset#tileUnload 事件以保存任何 修改。此外,侦听 Cesium3DTileset#tileVisible 事件以重新应用任何修改。

不要直接构造它。 通过 Cesium3DTileContent#getFeature 访问它 或使用 Scene#pick 进行挑选。

Example:
// On mouse over, display all the properties for a feature in the console log.
handler.setInputAction(function(movement) {
    const feature = scene.pick(movement.endPosition);
    if (feature instanceof Cesium.Cesium3DTileFeature) {
        const propertyIds = feature.getPropertyIds();
        const length = propertyIds.length;
        for (let i = 0; i < length; ++i) {
            const propertyId = propertyIds[i];
            console.log(`{propertyId}: ${feature.getProperty(propertyId)}`);
        }
    }
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

Members

获取或设置高亮颜色 (highlight color) 与特征颜色相乘。 什么时候 这是白色的,特征的颜色不会改变。这是为所有功能设置的 当评估样式的颜色时。
Default Value: Color.WHITE
获取与此功能关联的功能 ID。对于 3D 瓦片 1.0, 返回批处理 ID。对于EXT_mesh_features,这是 所选特征 ID 集。
Experimental

此功能使用的是 3D Tiles 规范的一部分,该规范不是最终版本,并且可能会在没有 Cesium 标准弃用策略的情况下进行更改。

polylinePositions : Float64Array

获取包含折线的 ECEF 位置的类型化数组。 如果 Cesium3DTileset#vectorKeepDecodedPositions 为 false,则返回 undefined 或特征不是矢量切片中的折线。
Experimental

此功能使用的是 3D Tiles 规范的一部分,该规范并非最终版本,并且可能会在没有 Cesium 标准弃用政策的情况下进行更改。

Scene#pick 返回的所有对象都具有 primitive 属性。这将返回 包含特征的瓦片集。
获取或设置是否功能。这是为所有功能设置的 评估样式的显示时。
Default Value: true
获取包含特征的图块集。

Methods

static Cesium.Cesium3DTileFeature.getPropertyInherited(content, batchId, name)*

返回具有给定名称的功能属性的副本,检查所有 来自 3D Tiles 1.0 格式的元数据、EXT_structural_metadata 和旧版 EXT_feature_metadata glTF 扩展,元数据位于 图块集 JSON (3D Tiles 1.1) 或在 3DTILES_metadata 3D Tiles 扩展中。 根据名称从最具体到最通用的顺序检查元数据,并且 返回第一个匹配项。元数据按以下顺序检查:
  1. 按语义划分的批处理表(结构元数据)属性
  2. 按属性 ID 的批处理表(结构元数据)属性
  3. 语义的内容元数据属性
  4. 按属性划分的内容元数据属性
  5. 按语义划分的平铺元数据属性
  6. 按属性 ID 划分的平铺元数据属性
  7. 按语义划分的子树元数据属性
  8. 按属性 ID 划分的子树元数据属性
  9. 按语义对元数据属性进行分组
  10. 按属性 ID 对元数据属性进行分组
  11. 按语义划分的 Tileset 元数据属性
  12. 按属性 ID 划分的瓦片集元数据属性
  13. 否则,返回 undefined

对于 3D Tiles Next 详细信息, 请参阅 3DTILES_metadata Extension 用于 3D 瓦片,以及 EXT_structural_metadata Extension 表示 glTF。对于旧版 glTF 扩展, 请参阅 EXT_feature_metadata Extension

Name Type Description
content Cesium3DTileContent 用于访问元数据的内容
batchId number 要获取其属性的特征的批处理 ID(或特征 ID)
name string 特征的语义或属性 ID。在每个元数据粒度中,在属性 ID 之前检查语义。
Returns:
属性的值,如果功能没有此属性,则为 undefined
Experimental

此功能使用的是 3D Tiles 规范的一部分,该规范并非最终版本,并且可能会在没有 Cesium 标准弃用政策的情况下进行更改。

返回具有给定名称的功能属性的值的副本。这包括此功能的 类和继承的类。
Name Type Description
name string 属性的区分大小写的名称。
Returns:
属性的值,如果特征没有此属性,则为 undefined
Example:
// Display all the properties for a feature in the console log.
const propertyIds = feature.getPropertyIds();
const length = propertyIds.length;
for (let i = 0; i < length; ++i) {
    const propertyId = propertyIds[i];
    console.log(`{propertyId}: ${feature.getProperty(propertyId)}`);
}
See:

getPropertyIds(results)Array.<string>

返回功能的属性 ID 数组。这包括此功能的 类和继承的类。
Name Type Description
results Array.<string> optional 存储结果的数组。
Returns:
功能属性的 ID。
See:

hasProperty(name)boolean

返回功能是否包含此属性。这包括此功能的 类和继承的类。
Name Type Description
name string 属性的区分大小写的名称。
Returns:
特征是否包含此属性。
See:
使用给定名称设置功能属性的值。

如果具有给定名称的属性不存在,则会创建该属性。

Name Type Description
name string 属性的区分大小写的名称。
value * 将要复制的属性的值。
Throws:
  • DeveloperError : 继承的批处理表层次结构属性是只读的。
Examples:
const height = feature.getProperty('Height'); // e.g., the height of a building
const name = 'clicked';
if (feature.getProperty(name)) {
    console.log('already clicked');
} else {
    feature.setProperty(name, true);
    console.log('first click');
}
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.