建筑组件子图层包含表示门、管道或空调单元等建筑构件的 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 | 更多信息 | 更多信息 | BuildingSublayer | |
String | 更多信息对于 BuildingComponentSublayer,类型始终为 "building-component"。 | 更多信息 | BuildingComponentSublayer | |
Boolean | 更多信息 指示子图层是否在视图中可见。 | 更多信息 | BuildingSublayer |
属性详细说明
-
类名。类的名称声明格式为
geoscene.folder.className
。
-
definitionExpression String
-
用于筛选客户端上的要素的 SQL where 子句。只有满足定义表达式的要素才会显示在视图中。当仅应显示图层中数据的子集时,设置定义表达式非常有用。
设置图层的定义表达式会自动更新所有图层视图。
如果在将图层添加到地图后设置定义表达式,则视图将自动刷新以显示满足新定义表达式的要素。
请注意,即使经过过滤,要素的初始加载时间也保持不变。发生这种情况是因为,与要素图层相反,要素过滤是在客户端完成的。这意味着需要下载所有要素以进行过滤器评估。
此属性使用缓存的属性在客户端上计算,并且仅支持标准化 SQL。
-
场景服务定义的子图层的图层 ID。
-
指示此子图层是否为空。 此属性仅从服务中读取。 空子图层不会加载进行渲染,应用程序可以选择在其 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
-
加载时出现的警告列表。
-
modelName 是每个子图层的标准名称。 例如,包含建筑物中门的子图层的模型名称为“Doors”。 使用此属性检索 BuildingSceneLayer 中的子图层。
示例代码:// 使用modelName来标识一个子图层 const doorslayer = buildingSceneLayer.allSublayers.find(function(sublayer) { return sublayer.modelName === "Doors"; });
-
子图层的不透明度。
- 默认值:1
-
起始版本: 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
,则自动使用默认弹出模板。
-
分配给子图层的渲染器。渲染器定义如何可视化子图层中的每个要素。根据渲染器类型,可以使用相同符号或基于提供的属性字段或函数的值使用不同的符号来可视化要素。
- 示例:
示例代码:// 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" } }] } };
-
type Stringreadonly
对于 BuildingComponentSublayer,类型始终为 "building-component"。
-
指示子图层是否在视图中可见。
- 默认值:true
方法列表
属性 | 返回值类型 | 描述 | 类 | |
---|---|---|---|---|
更多信息 如果 load() 操作已经在进行中,则取消它。 | 更多信息 | BuildingComponentSublayer | ||
PopupTemplate | 更多信息 为图层创建一个默认弹出模板,填充图层的所有字段。 | 更多信息 | BuildingComponentSublayer | |
Query | 更多信息 创建一个查询对象,该对象可用于提取满足组件子图层的当前定义表达式的要素。 | 更多信息 | BuildingComponentSublayer | |
Field | 更多信息 返回字段名称的 Field 实例(不区分大小写)。 | 更多信息 | BuildingComponentSublayer | |
Domain | 更多信息 返回与给定字段名称关联的Domain。 | 更多信息 | BuildingComponentSublayer | |
Object | 更多信息 获取字段使用信息。 | 更多信息 | BuildingComponentSublayer | |
Boolean | 更多信息
| 更多信息 | BuildingComponentSublayer | |
Boolean | 更多信息
| 更多信息 | BuildingComponentSublayer | |
Boolean | 更多信息
| 更多信息 | BuildingComponentSublayer | |
Promise | 更多信息 加载该类引用的资源。 | 更多信息 | BuildingComponentSublayer | |
Promise<Object> | 更多信息 | 更多信息 | BuildingComponentSublayer | |
Promise<Number> | 更多信息 对关联的要素服务执行查询并返回满足查询的要素数。 | 更多信息 | BuildingComponentSublayer | |
Promise<FeatureSet> | 更多信息 | 更多信息 | BuildingComponentSublayer | |
Promise<Number[]> | 更多信息 对关联的要素服务执行查询,并返回满足输入查询的要素的 ObjectID 数组。 | 更多信息 | BuildingComponentSublayer | |
Promise | 更多信息
| 更多信息 | BuildingComponentSublayer |
方法详细说明
-
cancelLoad()
-
如果 load() 操作已经在进行中,则取消它。
-
createPopupTemplate(options){PopupTemplate}起始版本: GeoScene API for JavaScript 4.22
-
为图层创建一个默认弹出模板,填充图层的所有字段。
参数:options CreatePopupTemplateOptionsoptional用于创建弹出模板的选项。
返回值:类型 描述 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可以是 CodedValueDomain 或 RangeDomain。
参数:fieldName String字段名称。
options Objectoptional指定附加选项的对象。 有关此对象所需的属性,请参阅下面的对象规格表。
规范:feature GraphicDomain 被分配到的要素。
返回值:类型 描述 Domain 与给定要素的给定字段名称相关联的Domain对象。
-
getFieldUsageInfo(fieldName){Object}起始版本: GeoScene API for JavaScript 4.22.
-
获取字段用法信息。在构建构件子图层上,字段始终可用于渲染和弹出窗口。字段只能用于查询关联的要素服务是否可用。
返回的对象包含以下用法信息:
属性 类型 描述 supportsRenderer boolean 表示可以在渲染器中使用字段(例如在视觉变量中),请参阅渲染器。 supportsLabelingInfo boolean 始终是 false
,BuildingSceneLayer 不支持标记。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 AbortSignaloptional可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。返回值:类型 描述 Promise 资源已加载时解析。
-
起始版本: GeoScene API for JavaScript 4.22
-
对关联的要素服务执行 Query 并返回满足查询的要素的 2D Extent 。 目前可以使用 BuildingComponentSublayerView.queryExtent() 返回 3D 范围,但这只会返回视图中当前要素的 3D 范围。 仅当 BuildingSceneLayer 具有关联的要素图层时,Query 才会成功。 如果关联的要素图层不可用,则会引发名为
buildingscenelayer:query-not-available
的错误。参数:optional 自动转换自 Object指定查询参数。
options Objectoptional具有如下属性的对象。
规范:signal AbortSignaloptional可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。返回值:类型 描述 Promise<Object> 解析后,返回满足输入查询的要素的范围和计数。 有关详细信息,请参阅下面的对象规范表。 属性 类型 描述 count Number 满足输入查询的要素数量。 extent Extent 满足查询的要素范围。
-
起始版本: GeoScene API for JavaScript 4.22
-
对关联的要素服务执行查询并返回满足查询的要素数。 仅当启用图层的
supportsLayerQuery
功能时,Query 才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。参数:optional 自动转换自 Object指定查询参数。
options Objectoptional具有如下属性的对象。
规范:signal AbortSignaloptional可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。返回值:类型 描述 Promise<Number> 解析为满足查询的要素计数。
-
queryFeatures(query, options){Promise<FeatureSet>}起始版本: GeoScene API for JavaScript 4.22
-
对关联的要素服务执行 Query 并返回 FeatureSet。 仅当启用图层的
supportsLayerQuery
功能时,查询才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。参数:optional 自动转换自 Object指定查询参数。
options Objectoptional具有如下属性的对象。
规范:signal AbortSignaloptional可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。返回值:类型 描述 Promise<FeatureSet> 解析为包含满足查询的特征的 FeatureSet。
-
起始版本: GeoScene API for JavaScript 4.22
-
对关联的要素服务执行 Query 并返回满足输入查询的要素的 ObjectID 数组。 仅当启用图层的
supportsLayerQuery
功能时,查询才会成功。 使用 getFieldUsageInfo() 方法检查图层是否支持查询。 如果未启用查询,则会抛出名为buildingscenelayer:query-not-available
的错误。 在 SceneLayer 类描述的查询部分中阅读有关查询的更多信息。参数:optional 自动转换自 Object指定查询参数。
options Objectoptional具有如下属性的对象。
规范:signal AbortSignaloptional可用于中止异步任务的 Signal 对象。 当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的 Error 拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止 signals 的控制器的更多信息。返回值:类型 描述 Promise<Number[]> 解析为一个数字数组,该数组表示满足查询的要素的对象 ID。
-
when(callback, errback){Promise}
-
when()
创建类的实例后,会被执行一次。该方法接受两个参数:callback
函数和errback
函数。callback
在类的实例加载时执行。 如果类的实例无法加载,则执行errback
。参数:callback Functionoptional当 Promise 成功时,该函数将被调用。
errback Functionoptional当 Promise 失败时,该函数将被调用。
返回值:类型 描述 Promise 返回回调结果的新promise,可用于 链接其他函数。 示例代码:// 尽管此示例使用 MapView,但任何作为 Promise 的类实例都可以以相同的方式使用 when() let view = new MapView(); view.when(function(){ // 当 Promise resolved 时,函数将被执行 }, function(error){ // 当 Promise 通过 rejected 抛错时,这个函数将被执行 });