Cesium3DTileset 的一个特征。
提供对存储在瓦片的批处理表中的特征属性的访问,以及通过
Cesium3DTileFeature#show 和 Cesium3DTileFeature#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
获取或设置与特征颜色相乘的高亮颜色。当它为白色时,特征的颜色不会改变。当评估样式的颜色时,将为所有特征设置此值。
-
Default Value:
Color.WHITE
获取与此特征关联的特征 ID。对于 3D Tiles 1.0,返回批处理 ID。对于 EXT_mesh_features,这是来自
选定特征 ID 集的特征 ID。
Experimental
此功能使用了3D Tiles规范中的部分内容,该规范尚未定稿,可能会在不遵循Cesium标准弃用政策的情况下发生更改。
获取包含多线段的ECEF位置的类型化数组。如果
Cesium3DTileset#vectorKeepDecodedPositions 为 false
或特征不是向量瓦片中的多线段,则返回 undefined。
Experimental
此功能使用了3D Tiles规范中的部分内容,该规范尚未定稿,可能会在不遵循Cesium标准弃用政策的情况下发生更改。
readonly primitive : Cesium3DTileset
所有由
Scene#pick 返回的对象都有一个 primitive 属性。该属性返回
包含该特征的瓦片集。
获取或设置特征是否可见。当评估样式的显示属性时,将为所有特征设置此值。
-
Default Value:
true
readonly tileset : Cesium3DTileset
获取包含该特征的瓦片集。
Methods
返回具有给定名称的特征属性的副本,检查来自3D Tiles 1.0 格式、EXT_structural_metadata 和遗留的
EXT_feature_metadata glTF 扩展的所有元数据,以及在
瓦片集 JSON(3D Tiles 1.1)或 3DTILES_metadata 3D Tiles 扩展中存在的元数据。
元数据按照从最具体到最一般的顺序检查,返回第一个匹配项。元数据检查的顺序为:
- 按语义的批处理表(结构元数据)属性
- 按属性 ID 的批处理表(结构元数据)属性
- 按语义的内容元数据属性
- 按属性的内容元数据属性
- 按语义的瓦片元数据属性
- 按属性 ID 的瓦片元数据属性
- 按语义的子树元数据属性
- 按属性 ID 的子树元数据属性
- 按语义的组元数据属性
- 按属性 ID 的组元数据属性
- 按语义的瓦片集元数据属性
- 按属性 ID 的瓦片集元数据属性
- 否则,返回 undefined
有关 3D Tiles Next 的详细信息,请参见 3DTILES_metadata 扩展 以及 EXT_structural_metadata 扩展 的 glTF。有关遗留 glTF 扩展的信息,请参见 EXT_feature_metadata 扩展
| 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:
返回特征的属性 ID 数组。这包括在使用批处理表层次结构时来自该特征类及继承类的属性。
| Name | Type | Description |
|---|---|---|
results |
Array.<string> | optional 存储结果的数组。 |
Returns:
特征属性的 ID。
返回特征是否包含此属性。这包括在使用批处理表层次结构时来自该特征类及继承类的属性。
| Name | Type | Description |
|---|---|---|
name |
string | 属性的区分大小写名称。 |
Returns:
特征是否包含此属性。
设置具有给定名称的特征属性的值。
如果不存在具有给定名称的属性,则会创建该属性。
| 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');
}
