BuildingComponentSublayers 包含表示门、管道或 AC 单元等建筑构件的 3D 对象要素。它们是 BuildingSceneLayer 中的子图层,可以直接作为 BuildingGroupSublayer 的一部分。此子图层类似于 3D 对象 SceneLayer,可以使用特定的渲染器进行可视化,可以使用 popupTemplate 自定义弹出窗口,并且可以通过设置 definitionExpression 来应用 SQL 过滤器。
从版本 4.17 开始,如果 BuildingSceneLayer 具有关联的要素图层,则 BuildingComponentSublayers 支持属性或空间查询。
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 类的名称。 更多详情 | Accessor | |
String | 用于过滤客户端中要素的 SQL where 子句。 更多详情 | BuildingComponentSublayer | |
Number | 场景服务定义的子图层的图层 id。 更多详情 | BuildingSublayer | |
Boolean | 指示此子图层是否为空。 更多详情 | BuildingSublayer | |
String | 指示图层在 LayerList 微件中的显示方式。 更多详情 | BuildingComponentSublayer | |
Error | 如果加载时发生错误,则返回 Error 对象。 更多详情 | BuildingComponentSublayer | |
String | 表示 load 操作的状态。 更多详情 | BuildingComponentSublayer | |
Object[] | 加载时发生的警告列表。 更多详情 | BuildingComponentSublayer | |
String | modelName 是每个子图层的标准名称。 更多详情 | BuildingSublayer | |
Number | 子图层的不透明度。 更多详情 | BuildingSublayer | |
String[] | 要包含在每个要素中的字段名称数组。 更多详情 | BuildingComponentSublayer | |
Boolean | 指示单击图层中的要素时是否显示弹出窗口。 更多详情 | BuildingComponentSublayer | |
PopupTemplate | 子图层的弹出模板。 更多详情 | BuildingComponentSublayer | |
渲染器 | 分配给子图层的渲染器。 更多详情 | BuildingComponentSublayer | |
String | 用于在某些地方标识它的子图层标题,例如 LayerList 和 Legend 微件。 更多详情 | BuildingSublayer | |
String | 对于 BuildingComponentSublayer,类型总是 "building-component"。更多详情 | BuildingComponentSublayer | |
Boolean | 指示子图层在视图中是否可见。 更多详情 | BuildingSublayer |
属性详细信息
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
definitionExpression String
-
用于过滤客户端中要素的 SQL where 子句。仅满足定义表达式的要素才会显示在 View 中。当仅显示图层中数据的子集时,设置定义表达式非常有用。
设置图层的定义表达式会自动更新所有图层视图。
如果在将图层添加到地图后设置定义表达式,则视图将自动刷新以显示满足新定义表达式的要素。
请注意,即使经过过滤,要素的初始加载时间也保持不变。发生这种情况是因为,与要素图层相反,要素过滤是在客户端完成的。这意味着需要下载所有要素以进行过滤器评估。
此属性使用缓存的属性在客户端上计算,并且仅支持标准化 SQL。
-
场景服务定义的子图层的图层 id。
-
指示此子图层是否为空。此属性仅从服务中读取。不会加载空子图层进行渲染,应用程序可以选择在其 UI 中隐藏它们。
-
listMode String起始版本:GeoScene Maps SDK for JavaScript 4.11
-
指示图层在 LayerList 微件中的显示方式。下面列出了可能的值。
值 描述 show 图层在内容列表中可见。 hide 图层在内容列表中隐藏。 可能值:"show"|"hide"
- 默认值:show
-
loadError Errorreadonly
-
如果加载时发生错误,则返回 Error 对象。
- 默认值:null
-
loadStatus Stringreadonly
-
表示 load 操作的状态。
值 描述 not-loaded 对象的资源尚未加载。 loading 对象的资源当前正在加载。 loaded 对象的资源已加载且未出现错误。 failed 无法加载对象的资源。有关更多详情,请参阅 loadError。 可能值:"not-loaded"|"loading"|"failed"|"loaded"
- 默认值:not-loaded
-
加载时发生的警告列表。
-
modelName 是每个子图层的标准名称。例如,包含建筑物中门的子图层的模型名称为“Doors”。使用此属性可检索 BuildingSceneLayer 中的子图层。
示例// use modelName to identify a sublayer const doorslayer = buildingSceneLayer.allSublayers.find(function(sublayer) { return sublayer.modelName === "Doors"; });
-
子图层的不透明度。
- 默认值:1
-
起始版本:GeoScene Maps SDK for JavaScript 4.12
-
要包含在每个要素中的字段名称数组。要从图层的所有字段中获取值,请使用
["*"]
。outFields
中指定的字段将与 rendering 所需的字段一起被请求。要在所有子图层中包含字段,请使用父图层的 outFields 属性。
- 默认值:null
-
popupEnabled Boolean
-
指示单击图层中的要素时是否显示弹出窗口。该图层需要具有一个 popupTemplate,以定义应在弹出窗口中显示哪些信息。或者,如果 Popup.defaultPopupTemplateEnabled 设置为
true
时,则可自动使用默认弹出模板。- 默认值:true
- 另请参阅
-
popupTemplate PopupTemplateautocast
-
子图层的弹出模板。设置后,
popupTemplate
允许用户在使用文本和/或图表选择要素时访问属性并在视图的弹出窗口中显示其值。有关 PopupTemplate 如何与 FeatureLayer 交互的例子,请参阅 PopupTemplate sample。在此图层类型上设置 PopupTemplate 的方式与 FeatureLayer 相同。当 Popup.defaultPopupTemplateEnabled 设置为
true
时,如果未定义popupTemplate
,则自动使用默认弹出模板。- 另请参阅
-
分配给子图层的渲染器。渲染器定义如何可视化子图层中的每个要素。根据渲染器类型,可以使用相同的符号或基于提供的属性字段或函数的值使用不同的符号来可视化要素。
示例// all features in the layer will be visualized with // a blue color sublayer.renderer = { type: "simple", // autocasts as new SimpleRenderer() symbol: { type: "mesh-3d", // autocasts as new MeshSymbol3D() symbolLayers: [{ type: "fill", // autocasts as new FillSymbol3DLayer() material: { color: "blue" } }] } };
-
type Stringreadonly
-
对于 BuildingComponentSublayer,类型总是 "building-component"。
-
指示子图层在视图中是否可见。
- 默认值:true
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
如果 load() 操作已在进行中,则取消它。 更多详情 | BuildingComponentSublayer | ||
PopupTemplate | 为图层创建一个默认弹出模板,使用图层的所有字段进行填充。 更多详情 | BuildingComponentSublayer | |
Query | 创建一个查询对象,该对象可用于提取满足组件子图层的当前定义表达式的要素。 更多详情 | BuildingComponentSublayer | |
Field | 返回字段名称的 Field 实例 (不区分大小写)。 更多详情 | BuildingComponentSublayer | |
Domain | 返回与给定字段名称相关联的 Domain。 更多详情 | BuildingComponentSublayer | |
Object | 获取字段使用信息。 更多详情 | BuildingComponentSublayer | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
Boolean |
| BuildingComponentSublayer | |
Boolean |
| BuildingComponentSublayer | |
Boolean |
| BuildingComponentSublayer | |
Promise | 加载此类引用的资源。 更多详情 | BuildingComponentSublayer | |
Promise<Object> | 对关联的要素服务执行查询,并返回满足查询条件的要素的 2D 范围。 更多详情 | BuildingComponentSublayer | |
Promise<number> | 对关联的要素服务执行查询,并返回满足查询条件的要素数。 更多详情 | BuildingComponentSublayer | |
Promise<FeatureSet> | 对关联的要素服务执行查询并返回 FeatureSet。 更多详情 | BuildingComponentSublayer | |
Promise<number[]> | 对关联的要素服务执行查询,并返回满足输入查询条件的要素的 ObjectID 数组。 更多详情 | BuildingComponentSublayer | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
Promise | 一旦创建了类的实例,就可以使用 | BuildingComponentSublayer |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
cancelLoad()
-
如果 load() 操作已在进行中,则取消它。
-
createPopupTemplate(options){PopupTemplate}起始版本:GeoScene Maps SDK for JavaScript 4.11
-
为图层创建一个默认弹出模板,使用图层的所有字段进行填充。
参数options CreatePopupTemplateOptionsoptional用于创建弹出模板的选项。
返回类型 描述 PopupTemplate 弹出模板,如果图层没有任何字段,则为 null
。
-
createQuery(){Query}起始版本:GeoScene Maps SDK for JavaScript 4.17
-
创建一个查询对象,该对象可用于提取满足组件子图层的当前定义表达式的要素。查询应仅在图层上使用,而不应在图层视图上使用。
返回类型 描述 Query 表示图层的定义表达式的查询对象。
-
getField(fieldName){Field}起始版本:GeoScene Maps SDK for JavaScript 4.12
-
返回字段名称的 Field 实例 (不区分大小写)。
参数fieldName String字段名称。
返回类型 描述 Field 匹配字段或 undefined
-
getFieldDomain(fieldName, options){Domain}起始版本:GeoScene Maps SDK for JavaScript 4.12
-
返回与给定字段名称相关联的 Domain。域可以是 CodedValueDomain 或 RangeDomain。
参数fieldName String字段名称。
options Objectoptional指定附加选项的对象。有关此对象所需的属性,请参阅下面的对象规范表。
规范feature Graphic将 Domain 分配到的要素。
返回类型 描述 Domain 与给定要素的给定字段名称相关联的 Domain 对象。
-
getFieldUsageInfo(fieldName){Object}起始版本:GeoScene Maps SDK for JavaScript 4.17。
-
获取字段使用信息。在构建组件子图层上,字段始终可用于渲染和弹出窗口。字段只能用于查询关联的要素服务是否可用。
返回的对象包含以下用法信息:
属性 类型 描述 supportsRenderer boolean 表示可以在渲染器中使用字段 (例如,在视觉变量中),请参阅渲染器。 supportsLabelingInfo boolean 此值始终是 false
,BuildingSceneLayer 不支持标注。supportsPopupTemplate boolean 表示可以在弹出模板中使用字段,请参阅 popupTemplate。 supportsLayerQuery boolean 表示可以在图层查询中使用字段,请参阅 queryFeatures()。 参数fieldName String要获取其使用情况信息的字段名称。
返回类型 描述 Object 字段用法。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
isFulfilled(){Boolean}
-
isFulfilled()
可用于验证创建类的实例是否已完成 (已解决或已拒绝)。如果满足,则返回true
。返回类型 描述 Boolean 指示创建类的实例是否已完成 (已解决或已拒绝)。
-
isRejected(){Boolean}
-
isRejected()
可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回true
。返回类型 描述 Boolean 指示创建类的实例是否已被拒绝。
-
load(signal){Promise}
-
加载此类引用的资源。如果视图是使用地图实例构造的,则此方法会自动为 View 及其在 Map 中引用的所有资源执行。
开发人员在访问不会在 View 中加载的资源时,必须调用此方法。
load()
方法仅在第一次调用时触发资源的加载。随后的调用将返回相同的 promise。可以提供一个
signal
来停止对Loadable
实例加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。参数signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise 资源已加载时解析。
-
起始版本:GeoScene Maps SDK for JavaScript 4.17
-
对关联的要素服务执行查询,并返回满足查询条件的要素的 2D 范围。目前,可以使用 BuildingComponentSublayerView.queryExtent() 返回 3D 范围,但这只会返回视图中当前要素的 3D 范围。仅当 BuildingSceneLayer 具有关联的要素图层时,查询才会成功。如果关联的要素图层不可用,则会抛出名为
buildingscenelayer:query-not-available
的错误。更多关于查询的信息,请阅读 BuildingSceneLayer 类描述的查询部分。参数optional 自动转换自 Object指定查询参数。
options Objectoptional具有以下属性的对象。
规范signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。有关详细信息,请参阅下面的对象规范表。 属性 类型 描述 count Number 满足输入查询的要素数量。 extent Extent 满足查询的要素范围。
-
起始版本:GeoScene Maps SDK for JavaScript 4.17
-
对关联的要素服务执行查询,并返回满足查询条件的要素数。仅当启用图层的
supportsLayerQuery
功能时,查询才会成功。使用 getFieldUsageInfo() 方法检查图层是否支持查询。如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。更多关于查询的信息,请阅读 BuildingSceneLayer 类描述的查询部分。参数optional 自动转换自 Object指定查询参数。
options Objectoptional具有以下属性的对象。
规范signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise<number> 解析为满足查询的要素计数。
-
queryFeatures(query, options){Promise<FeatureSet>}起始版本:GeoScene Maps SDK for JavaScript 4.17
-
对关联的要素服务执行查询并返回 FeatureSet。仅当启用图层的
supportsLayerQuery
功能时,查询才会成功。使用 getFieldUsageInfo() 方法检查图层是否支持查询。如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。更多关于查询的信息,请阅读 BuildingSceneLayer 类描述的查询部分。参数optional 自动转换自 Object指定查询参数。
options Objectoptional具有以下属性的对象。
规范signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise<FeatureSet> 解析为包含满足查询的要素的 FeatureSet。
-
起始版本:GeoScene Maps SDK for JavaScript 4.17
-
对关联的要素服务执行查询,并返回满足输入查询条件的要素的 ObjectID 数组。仅当启用图层的
supportsLayerQuery
功能时,查询才会成功。使用 getFieldUsageInfo() 方法检查图层是否支持查询。如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。更多关于查询的信息,请阅读 SceneLayer 类描述的查询部分。参数optional 自动转换自 Object指定查询参数。
options Objectoptional具有以下属性的对象。
规范signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise<number[]> 解析为一个数字数组,表示满足查询的要素的对象 ID。
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
when(callback, errback){Promise}
-
一旦创建了类的实例,就可以使用
when()
。此方法接受两个输入参数:callback
函数和errback
函数。callback
在类的实例加载时执行。errback
在类的实例无法加载时执行。参数callback Functionoptional当 promise 解决时调用的函数。
errback Functionoptional当 promise 失败时执行的函数。
返回类型 描述 Promise 返回 callback
结果的新承诺,可用于链接其他函数。示例// Although this example uses MapView, any class instance that is a promise may use when() in the same way let view = new MapView(); view.when(function(){ // This function will execute once the promise is resolved }, function(error){ // This function will execute if the promise is rejected due to an error });