BuildingComponentSublayer

AMD: require(["geoscene/layers/buildingSublayers/BuildingComponentSublayer"], (BuildingComponentSublayer) => { /* 代码 */ });
ESM: import BuildingComponentSublayer from "@geoscene/core/layers/buildingSublayers/BuildingComponentSublayer";
类: geoscene/layers/buildingSublayers/BuildingComponentSublayer
继承于: BuildingComponentSublayer BuildingSublayer Accessor
起始版本: GeoScene API for JavaScript 4.22

建筑组件子图层包含表示门、管道或空调单元等建筑构件的 3D 对象要素。它们是 BuildingSceneLayer 中的子图层,可以直接作为 BuildingGroupSublayer 的一部分。此子图层类似于 3D 对象 SceneLayer,可以使用特定的渲染器进行可视化,可以使用 popupTemplate 自定义弹出窗口,并且可以通过设置定义表达式来应用 SQL 过滤器。

从版本 4.17 开始,如果 BuildingSceneLayer 具有关联的要素图层,则 BuildingComponentSublayer 支持属性或空间查询。

示例:

属性列表

可以设置、检索或监听的属性。参见 使用属性
展示继承属性 隐藏继承属性
属性 类型 描述
String更多信息

类名。

更多信息Accessor
String更多信息

用于在客户端过滤要素的 SQL where 语句。

更多信息BuildingComponentSublayer
Number更多信息

场景服务定义的子图层的图层 ID。

更多信息BuildingSublayer
Boolean更多信息

指示此子图层是否为空。

更多信息BuildingSublayer
String更多信息

指示图层应如何在 LayerList 微件中显示。

更多信息BuildingComponentSublayer
Error更多信息

如果在加载时发生错误,则返回 Error 对象。

更多信息BuildingComponentSublayer
String更多信息

表示加载操作的状态。

更多信息BuildingComponentSublayer
Object[]更多信息

加载时出现的警告列表。

更多信息BuildingComponentSublayer
String更多信息

modelName 是每个子图层的标准名称。

更多信息BuildingSublayer
Number更多信息

子图层的不透明度。

更多信息BuildingSublayer
String[]更多信息

服务中包含每个功能的字段名称数组。

更多信息BuildingComponentSublayer
Boolean更多信息

表示点击图层中的要素时是否显示弹出窗口。

更多信息BuildingComponentSublayer
PopupTemplate更多信息

子图层的弹出模板。

更多信息BuildingComponentSublayer
Renderer更多信息

分配给子图层的渲染器。

更多信息BuildingComponentSublayer
String更多信息

用于在 LayerListLegend 微件等位置标识子图层的标题。

更多信息BuildingSublayer
String更多信息对于 BuildingComponentSublayer,类型始终为 "building-component"。更多信息BuildingComponentSublayer
Boolean更多信息

指示子图层是否在视图中可见。

更多信息BuildingSublayer

属性详细说明

declaredClass Stringreadonly inherited

类名。类的名称声明格式为 geoscene.folder.className

definitionExpression String

用于筛选客户端上的要素的 SQL where 子句。只有满足定义表达式的要素才会显示在视图中。当仅应显示图层中数据的子集时,设置定义表达式非常有用。

设置图层的定义表达式会自动更新所有图层视图。

如果在将图层添加到地图后设置定义表达式,则视图将自动刷新以显示满足新定义表达式的要素。

请注意,即使经过过滤,要素的初始加载时间也保持不变。发生这种情况是因为,与要素图层相反,要素过滤是在客户端完成的。这意味着需要下载所有要素以进行过滤器评估。

此属性使用缓存的属性在客户端上计算,并且仅支持标准化 SQL。

id Numberreadonly inherited

场景服务定义的子图层的图层 ID。

isEmpty Booleanreadonly inherited

指示此子图层是否为空。 此属性仅从服务中读取。 空子图层不会加载进行渲染,应用程序可以选择在其 UI 中隐藏它们。

listMode String
起始版本: GeoScene API for JavaScript 4.22

指示图层应如何在 LayerList 微件中显示。 下面列出了可能的值。

描述
show 该图层在内容列表中可见。
hide 该图层在内容列表中不可见。

可选值:"show"|"hide"

默认值:show
loadError Errorreadonly

如果在加载时发生错误,则返回 Error 对象。

默认值:null
loadStatus Stringreadonly

表示加载操作的状态。

描述
not-loaded 该对象的资源尚未加载。
loading 该对象的资源正在加载。
loaded 该对象的资源已正确加载。
failed 对象的资源加载失败。 有关详细信息,请参阅 loadError

可选值:"not-loaded"|"loading"|"failed"|"loaded"

默认值:not-loaded
loadWarnings Object[]readonly

加载时出现的警告列表。

modelName Stringreadonly inherited

modelName 是每个子图层的标准名称。 例如,包含建筑物中门的子图层的模型名称为“Doors”。 使用此属性检索 BuildingSceneLayer 中的子图层。

示例代码:
// 使用modelName来标识一个子图层
const doorslayer = buildingSceneLayer.allSublayers.find(function(sublayer) {
  return sublayer.modelName === "Doors";
});
opacity Number inherited

子图层的不透明度。

默认值:1
outFields String[]
起始版本: GeoScene API for JavaScript 4.22

服务中要包含在每个要素中的字段名称数组。 要从图层中的所有字段中获取值,请使用  ["*"]。  outFields 中指定的字段将与 rendering 所需的字段一起被请求。

要在所有子图层中包含字段,请使用父图层的 outFields 属性。

默认值:null
popupEnabled Boolean

表示单击图层中的要素时是否显示弹出窗口。 该层需要有一个 popupTemplate 来定义什么 信息应显示在弹出窗口中。 或者,如果 Popup.defaultPopupTemplateEnabled 设置为 true,则可以自动使用默认弹出模板。

默认值:true
示例:
popupTemplate PopupTemplateautocast

子图层的弹出模板。 设置后,popupTemplate 允许用户在使用文本和/或图表选择功能时访问属性并在视图的弹出窗口中显示其值。 在此图层类型上设置 PopupTemplate 的方式与 FeatureLayer 相同。

Popup.defaultPopupTemplateEnabled 设置为true时,如果没有定义 popupTemplate,则自动使用默认弹出模板。

示例:
renderer Rendererautocast

分配给子图层的渲染器。渲染器定义如何可视化子图层中的每个要素。根据渲染器类型,可以使用相同符号或基于提供的属性字段或函数的值使用不同的符号来可视化要素。

示例:
示例代码:
// all features in the layer will be visualized with
// a blue color
sublayer.renderer = {
  type: "simple",  // 转换成 new SimpleRenderer()
  symbol: {
    type: "mesh-3d",  // 转换成 new MeshSymbol3D()
    symbolLayers: [{
      type: "fill",  // 转换成 new FillSymbol3DLayer()
      material: { color: "blue" }
    }]
  }
};

用于在 LayerListLegend 微件等位置标识子图层的标题。

type Stringreadonly

对于 BuildingComponentSublayer,类型始终为 "building-component"。

visible Boolean inherited

指示子图层是否在视图中可见。

默认值:true

方法列表

属性 返回值类型 描述
更多信息

如果 load() 操作已经在进行中,则取消它。

更多信息BuildingComponentSublayer
PopupTemplate更多信息

为图层创建一个默认弹出模板,填充图层的所有字段。

更多信息BuildingComponentSublayer
Query更多信息

创建一个查询对象,该对象可用于提取满足组件子图层的当前定义表达式的要素。

更多信息BuildingComponentSublayer
Field更多信息

返回字段名称的 Field 实例(不区分大小写)。

更多信息BuildingComponentSublayer
Domain更多信息

返回与给定字段名称关联的Domain

更多信息BuildingComponentSublayer
Object更多信息

获取字段使用信息。

更多信息BuildingComponentSublayer
Boolean更多信息

isFulfilled() 可用于验证创建类的实例是否已完成(无论成功或失败)。

更多信息BuildingComponentSublayer
Boolean更多信息

isRejected() 可用于验证创建类的实例是否失败。

更多信息BuildingComponentSublayer
Boolean更多信息

isResolved() 可用于验证创建类的实例是否成功。

更多信息BuildingComponentSublayer
Promise更多信息

加载该类引用的资源。

更多信息BuildingComponentSublayer
Promise<Object>更多信息

对关联的要素服务执行查询,并返回满足查询条件的要素的 2D 范围

更多信息BuildingComponentSublayer
Promise<Number>更多信息

对关联的要素服务执行查询并返回满足查询的要素数。

更多信息BuildingComponentSublayer
Promise<FeatureSet>更多信息

对关联的要素服务执行查询并返回要素集

更多信息BuildingComponentSublayer
Promise<Number[]>更多信息

对关联的要素服务执行查询,并返回满足输入查询的要素的 ObjectID 数组。

更多信息BuildingComponentSublayer
Promise更多信息

when() 创建类的实例后,会被执行一次。

更多信息BuildingComponentSublayer

方法详细说明

cancelLoad()

如果 load() 操作已经在进行中,则取消它。

createPopupTemplate(options){PopupTemplate}
起始版本: GeoScene API for JavaScript 4.22

为图层创建一个默认弹出模板,填充图层的所有字段。

参数:
optional

用于创建弹出模板的选项。

返回值:
类型 描述
PopupTemplate 弹出模板,如果图层没有任何字段,则为 null
createQuery(){Query}
起始版本: GeoScene API for JavaScript 4.22

创建一个查询对象,该对象可用于提取满足组件子图层的当前定义表达式的要素。查询应仅在图层上使用,而不应在图层视图上使用。

返回值:
类型 描述
Query 表示图层的定义表达式的查询对象。
getField(fieldName){Field}
起始版本: GeoScene API for JavaScript 4.22

返回字段名称的 Field 实例(不区分大小写)。

参数:
fieldName String

字段名称。

返回值:
类型 描述
Field 匹配字段或undefined
getFieldDomain(fieldName, options){Domain}
起始版本: GeoScene API for JavaScript 4.22

返回与给定字段名称关联的Domain。 Domain可以是 CodedValueDomainRangeDomain

参数:
fieldName String

字段名称。

options Object
optional

指定附加选项的对象。  有关此对象所需的属性,请参阅下面的对象规格表。

规范:
feature Graphic

Domain 被分配到的要素。

返回值:
类型 描述
Domain 与给定要素的给定字段名称相关联的Domain对象。
getFieldUsageInfo(fieldName){Object}
起始版本: GeoScene API for JavaScript 4.22.

获取字段用法信息。在构建构件子图层上,字段始终可用于渲染和弹出窗口。字段只能用于查询关联的要素服务是否可用。

返回的对象包含以下用法信息:

属性 类型 描述
supportsRenderer boolean 表示可以在渲染器中使用字段(例如在视觉变量中),请参阅渲染器
supportsLabelingInfo boolean 始终是 falseBuildingSceneLayer 不支持标记。
supportsPopupTemplate boolean 表示可以在弹出模板中使用字段,请参阅 popupTemplate
supportsLayerQuery boolean 表示可以在图层查询中使用字段,请参阅 queryFeatures()
参数:
fieldName String

要获取其使用情况信息的字段的名称。

返回值:
类型 描述
Object 字段用法。
isFulfilled(){Boolean}

isFulfilled() 可用于验证创建类的实例是否已完成(无论成功或失败)。 如果已完成,将会返回true

返回值:
类型 描述
Boolean 指示创建类的实例是否已完成(无论成功或失败)。
isRejected(){Boolean}

isRejected() 可用于验证创建类的实例是否失败。 如果失败, 将会返回 true

返回值:
类型 描述
Boolean 指示是否已拒绝创建类的实例。
isResolved(){Boolean}

isResolved() 可用于验证创建类的实例是否成功。 如果成功, 将会返回 true

返回值:
类型 描述
Boolean 指示是否已解析创建类的实例。
load(signal){Promise}

加载此类引用的资源。 此方法自动为 View 及其在 Map 中引用的所有资源执行 如果视图是用地图实例构造的。

当访问一个不会在View中加载的资源时,开发者必须调用这个方法。

load() 方法仅在第一次调用时触发资源的加载。 随后的调用返回相同的promise。

可以提供一个 signal 来停止对 Loadable 实例加载状态的关注。 当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。

参数:
signal AbortSignal
optional

可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。

返回值:
类型 描述
Promise 资源已加载时解析。
queryExtent(query, options){Promise<Object>}
起始版本: GeoScene API for JavaScript 4.22

对关联的要素服务执行 Query 并返回满足查询的要素的 2D Extent 。 目前可以使用  BuildingComponentSublayerView.queryExtent() 返回 3D 范围,但这只会返回视图中当前要素的 3D 范围。 仅当 BuildingSceneLayer 具有关联的要素图层时,Query 才会成功。 如果关联的要素图层不可用,则会引发名为 buildingscenelayer:query-not-available  的错误。

参数:
query Query autocast
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有如下属性的对象。

规范:
signal AbortSignal
optional

可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。

返回值:
类型 描述
Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。 有关详细信息,请参阅下面的对象规范表。
属性 类型 描述
count Number 满足输入查询的要素数量。
extent Extent 满足查询的要素范围。
queryFeatureCount(query, options){Promise<Number>}
起始版本: GeoScene API for JavaScript 4.22

对关联的要素服务执行查询并返回满足查询的要素数。 仅当启用图层的 supportsLayerQuery 功能时,Query 才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为  buildingscenelayer:query-not-available  的错误。

参数:
query Query autocast
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有如下属性的对象。

规范:
signal AbortSignal
optional

可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。

返回值:
类型 描述
Promise<Number> 解析为满足查询的要素计数。
queryFeatures(query, options){Promise<FeatureSet>}
起始版本: GeoScene API for JavaScript 4.22

对关联的要素服务执行 Query 并返回 FeatureSet。 仅当启用图层的  supportsLayerQuery 功能时,查询才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为  buildingscenelayer:query-not-available  的错误。

参数:
query Query autocast
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有如下属性的对象。

规范:
signal AbortSignal
optional

可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。

返回值:
类型 描述
Promise<FeatureSet> 解析为包含满足查询的特征的 FeatureSet
queryObjectIds(query, options){Promise<Number[]>}
起始版本: GeoScene API for JavaScript 4.22

对关联的要素服务执行 Query 并返回满足输入查询的要素的 ObjectID 数组。 仅当启用图层的  supportsLayerQuery 功能时,查询才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为 buildingscenelayer:query-not-available  的错误。 在 SceneLayer 类描述的查询部分中阅读有关查询的更多信息。

参数:
query Query autocast
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有如下属性的对象。

规范:
signal AbortSignal
optional

可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为 AbortErrorError 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。

返回值:
类型 描述
Promise<Number[]> 解析为一个数字数组,该数组表示满足查询的要素的对象 ID。
示例:
when(callback, errback){Promise}

when() 创建类的实例后,会被执行一次。该方法接受两个参数: callback 函数和 errback 函数。 callback 在类的实例加载时执行。 如果类的实例无法加载,则执行 errback

参数:
callback Function
optional

当 Promise 成功时,该函数将被调用。

errback Function
optional

当 Promise 失败时,该函数将被调用。

返回值:
类型 描述
Promise 返回回调结果的新promise,可用于 链接其他函数。
示例代码:
// 尽管此示例使用 MapView,但任何作为 Promise 的类实例都可以以相同的方式使用 when()
let view = new MapView();
view.when(function(){
  // 当 Promise resolved 时,函数将被执行
}, function(error){
  // 当 Promise 通过 rejected 抛错时,这个函数将被执行
});

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.