BuildingSceneLayer

AMD: require(["geoscene/layers/BuildingSceneLayer"], (BuildingSceneLayer) => { /* code goes here */ });
ESM: import BuildingSceneLayer from "@geoscene/core/layers/BuildingSceneLayer";
类: geoscene/layers/BuildingSceneLayer
继承于:BuildingSceneLayer Layer Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.10

概览

BuildingSceneLayer 旨在用于在 SceneView 中可视化具有详细内部情况的建筑物。这些建筑模型通常从建筑信息模型 (BIM) 项目中导出。BuildingSceneLayer 中的数据可以表示墙壁、照明设备、机械系统、家具等。

building-scene-layer

BuildingSceneLayer 的结构

BuildingSceneLayers 可视化建筑物的复杂数字模型,并允许您与建筑物的所有组件进行交互。由于高度复杂性,BuildingSceneLayer 中的数据以 BuildingGroupSublayers 的形式组织,后者包含 BuildingComponentSublayers

通常,BuildingSceneLayer 包含一个概览 BuildingComponentSublayer,可以加载该概览以显示建筑物的外壳。

这有助于更快地预览整个建筑物,而无需加载所有内部要素:

building-scene-layer-overview

BuildingSceneLayer 还包含一个完整的模型 BuildingGroupSublayer,其中包含按学科分组的建筑物中的所有要素:建筑、结构、电气和机械。每个学科都是一个 BuildingGroupSublayer,其中包含具有屋顶、墙壁、门、AC 单元、照明设备、柱子或地基等要素的 BuildingComponentSublayers

您可以在具有剖切微件的 BuildingSceneLayer 示例的 LayerList 中看到此图层结构:

building-scene-layer-fullmodel

发布 BuildingSceneLayer

可以使用 GeoScene Pro 导入来自 Revit 文件的建筑数据并将其发布为场景服务。

场景服务由 GeoScene Server REST 资源的 URLportalItem 标识:

const buildingLayer = new BuildingSceneLayer({
  url: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Esri_Admin_Building/SceneServer",
  title: "Administration Building, Redlands - Building Scene Layer"
});

可视化

能够在其空间环境和景观中可视化详细的建筑信息是一项有用的功能。为了从可视化中提取更多信息,可以将属性驱动的渲染器和可视化变量分配给 BuildingComponentSublayer.renderer。例如,Doors 子图层可以使用 UniqueValueRenderer 将所有需要更换的室内门渲染为红色:

building-scene-layer-renderer

过滤数据

通常,BuildingSceneLayer 中的要素可能会相互遮挡。基于属性的过滤可用于仅显示满足特定 SQL 表达式的要素。要根据要素的属性进行过滤,请使用 filters 集合。过滤 BuildingScenelayer 示例演示了如何在 BuildingSceneLayer 中过滤楼层。

还可通过应用客户端过滤器来筛选 BuildingSceneLayers。在 BuildingComponentSublayerView 上使用 filter 属性来应用基于空间或属性的过滤器。

弹出窗口

BuildingSceneLayer 中的子图层可以使用 BuildingComponentSublayer.popupTemplate 属性来自定义弹出窗口内容。还支持 popupTemplate 中的 Arcade 表达式。

查询

可以查询 BuildingSceneLayer组件子图层及其子图层视图,但它们返回不同的结果。对 BuildingComponentSublayer 的查询返回来自子图层中所有要素的结果,而对 BuildingComponentSublayerView 的查询返回视图中当前加载的要素的结果。

查询 BuildingComponentSublayer 将从关联要素图层的属性中检索结果。如果图层没有关联的要素图层,则查询将被拒绝并显示错误。对组件子图层的查询功能很强大,因为它们是在组件子图层中的所有要素上进行的。

为了在 BuildingComponentSublayerView 上进行基于属性的查询,需要在 BuildingSceneLayer 的 outFields 属性中指定必填字段,以确保客户端上的属性值可用于查询。您可以使用 availableFields 来检查客户端上可用的字段。在 BuildingComponentSublayerView 上,可以通过设置查询的 geometryspatialRelationship 来进行空间查询。请注意,对于这种类型的图层,空间关系是基于 Extent 而不是要素的覆盖区进行评估的。仅当 spatialRelationship 设置为 intersectscontainsdisjoint 时,才支持空间查询。

查询方法 BuildingComponentSubLayer (仅当 BuildingSceneLayer 具有关联的要素图层时才有效) BuildingComponentSublayerView (适用于所有 BuildingSceneLayers)
queryExtent 返回子图层中满足查询的所有要素的 2D 范围 返回子图层中满足查询的当前加载要素的 3D 范围
queryFeatureCount 返回子图层中满足查询的所有要素的数量 返回子图层中满足查询的当前加载要素的数量
queryFeatures 返回子图层中满足查询的所有要素 返回子图层中满足查询的当前加载要素
queryObjectIds 返回子图层中满足查询的所有要素的 objectId 返回子图层中满足查询的当前加载要素的 objectId

已知限制

  • 空间查询具有与投影引擎文档中列出的查询相同的限制。
  • 计算与查询几何的空间关系时,空间查询使用要素的范围,而不是轮廓线。这意味着,即使要素的轮廓线与几何不存在空间关系,也可能从查询中返回要素。
  • 目前,空间查询仅支持 intersectscontainsdisjoint spatialRelationships
  • 如果 BuildingSceneLayer 具有以下任何 SpatialReferences,则当前不支持空间查询:
    • GDM 2000 (4742) - 马来西亚
    • Gsterberg (Ferro) (8042) - 奥地利/捷克共和国
    • ISN2016 (8086) - 冰岛
    • SVY21 (4757) - 新加坡

获取 BuildingSceneLayer 中的要素范围

BuildingSceneLayers 不返回原始几何,因为这是一种二进制格式。要获取空间信息,可以查询组件子图层中要素的 2D 范围或 3D 范围。可以使用 BuildingComponentSublayer 上的 queryExtent() 方法检索所有要素 (甚至是尚未加载的要素) 的 2D 范围。仅当 BuildingSceneLayer 具有关联的要素图层时,此方法才会成功。只能使用 BuildingComponentSublayerView 上的 queryExtent() 方法查询已加载要素的 3D 范围。

另请参阅

构造函数

new BuildingSceneLayer(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

示例
// Typical usage
layer = new BuildingSceneLayer({
  url: // url to the service
});

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
String

当前活动过滤器的 ID。

更多详情
BuildingSceneLayer
Collection<(BuildingGroupSublayer|BuildingComponentSublayer)>

BuildingSublayer 中所有子图层的平面集合

更多详情
BuildingSceneLayer
String

场景服务定义的版权文本。

更多详情
BuildingSceneLayer
String

类的名称。

更多详情
Accessor
Object

指定要素在垂直轴 (z) 上的放置方式。

更多详情
BuildingSceneLayer
Collection<BuildingFilter>

可用于在 SceneView 中显示或隐藏特定要素的过滤器集合。

更多详情
BuildingSceneLayer
Extent

图层的完整范围。

更多详情
Layer
String

分配给图层的唯一 ID。

更多详情
Layer
Number

场景服务图层的图层 ID 或图层索引。

更多详情
BuildingSceneLayer
String

指示图层在 LayerList 微件中的显示方式。

更多详情
Layer
Boolean

指示图层的资源是否已加载。

更多详情
Layer
Error

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

更多详情
Layer
String

表示 load 操作的状态。

更多详情
Layer
Object[]

加载时发生的警告列表。

更多详情
Layer
Number

图层在视图中可见时的最大比例 (放至最大)。

更多详情
BuildingSceneLayer
Number

图层在视图中可见时的最小比例 (缩至最小)。

更多详情
BuildingSceneLayer
Number

图层的不透明度。

更多详情
Layer
String[]

服务中要包含在所有子图层中的每个要素的字段名称数组。

更多详情
BuildingSceneLayer
PortalItem

从中加载图层的门户项目。

更多详情
BuildingSceneLayer
SpatialReference

图层的空间参考。

更多详情
BuildingSceneLayer
Collection<(BuildingGroupSublayer|BuildingComponentSublayer)>

BuildingSceneLayer 中子图层的层次结构。

更多详情
BuildingSceneLayer
BuildingSummaryStatistics

建筑物场景图层中所有组件图层的汇总统计数据。

更多详情
BuildingSceneLayer
String

用于在某些地方标识它的图层标题,例如在 LegendLayerList 微件中。

更多详情
BuildingSceneLayer
String对于 BuildingSceneLayer,类型总是 "building-scene"更多详情BuildingSceneLayer
String

图层或场景服务的 REST 端点的 URL。

更多详情
BuildingSceneLayer
Object

用于此服务的场景服务规范的版本。

更多详情
BuildingSceneLayer
Boolean

指示图层在 View 中是否可见。

更多详情
Layer

属性详细信息

activeFilterId String
起始版本:GeoScene Maps SDK for JavaScript 4.12

当前活动过滤器的 ID。要激活其中一个过滤器,请将其 id 分配给此属性。

BuildingSublayer 中所有子图层的平面集合

示例
// finds the sublayer containing the doors
// use modelName to identify each layer as this is a standard name
const doorslayer = buildingSceneLayer.allSublayers.find(function(sublayer) {
  return sublayer.modelName === "Doors";
});
apiKey String
起始版本:GeoScene Maps SDK for JavaScript 4.20

用于访问资源或服务的授权字符串。API 秘钥可在 GeoScene Developer 仪表盘中生成和管理。API 密钥显式绑定到 GeoScene 帐户;它还用于监视服务的使用情况。在特定类上设置细粒度 API 秘钥将覆盖全局 API 秘钥

示例
// set the api key to access a protected service
const layer = new FeatureLayer({
  url: serviceUrl,
  apiKey: "YOUR_API_KEY"
});

场景服务定义的版权文本。

declaredClass Stringreadonly inherited

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

elevationInfo Object

指定要素在垂直轴 (z) 上的放置方式。此属性仅在使用 absolute-height 模式时影响 BuildingSceneLayer

属性
mode String

定义要素在垂直轴 (z) 上的放置方式。目前仅支持 absolute-height 模式。

模式 描述
absolute-height 要素放置在海平面以上的绝对高程 (z 值) 处。此 z 值是通过将 offset 值和点的 z 值相加来确定的。它没有考虑地形的高度。这是 BuildingSceneLayer 唯一支持的高程模式。

该值始终为 "absolute-height"

offset Number
optional
默认值:0

高程偏移,将其添加到每个要素的垂直位置。

unit String
optional
默认值:meters

offset 值的单位。

可能值"feet"|"meters"|"kilometers"|"miles"|"us-feet"|"yards"

起始版本:GeoScene Maps SDK for JavaScript 4.12

可用于在 SceneView 中显示或隐藏特定要素的过滤器集合。当仅显示图层中数据的子集时,使用过滤器非常有用。要激活 BuildingFilter,请将其添加到此集合中,并将其 id 分配给 activeFilterId。激活后,只有满足过滤器的 filterBlocks 所定义条件的要素才会显示在 SceneView 中。

示例
// define a floor filter
const buildingFilter = new BuildingFilter({
  filterBlocks: [{
    // an SQL expression that filters using the BldgLevel field
    filterExpression: "BldgLevel = 3"
  }]
});
// set the filter in the filters array on the layer
buildingLayer.filters = [buildingFilter];
// specify which filter is the one that should be applied
buildingLayer.activeFilterId = buildingFilter.id;

图层的完整范围。默认情况下,这是全球范围的。可使用此属性设置视图的范围以匹配图层的范围,以便其要素出现在视图中。请参阅以下示例片段。

示例
// Once the layer loads, set the view's extent to the layer's fullextent
layer.when(function(){
  view.extent = layer.fullExtent;
});

分配给图层的唯一 ID。如果不是开发人员设置的,它将在加载图层时自动生成。

layerId Number

场景服务图层的图层 ID 或图层索引。在从包含多个图层的服务加载具有 portalItem 属性的单个图层时,这特别有用。您可以在以下两种情况之一中指定此值:

  • 通过 portalItem 属性加载图层时。
  • 将图层 url 直接指向场景服务时。

如果上述任一场景中均未指定 layerId,则选择服务中的第一个图层 (layerId = 0)。

示例
// while these examples use a SceneLayer, the same pattern can be
// used for other layers that may be loaded from portalItem ids

// loads the third layer in the given Portal Item
let layer = new SceneLayer({
  portalItem: {
    id: "73df987984b24094b848d580eb83b0fb"
  },
  layerId: 2
});
// If not specified, the first layer (layerId: 0) will be returned
let layer = new SceneLayer({
  portalItem: {
    id: "73df987984b24094b848d580eb83b0fb"
  }
});
// Can also be used if URL points to service and not layer
let layer = new SceneLayer({
  url: "https://scenesampleserverdev.arcgis.com/geoscene/rest/services/Hosted/DevA_Trees/SceneServer",
  layerId: 0  // Notice that the url doesn't end with /2
});
// This code returns the same layer as the previous snippet
let layer = new SceneLayer({
  url: "https://scenesampleserverdev.arcgis.com/geoscene/rest/services/Hosted/DevA_Trees/SceneServer/layers/0",
  // The layer id is specified in the URL
});
listMode String inherited

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

描述
show 图层在内容列表中可见。
hide 图层在内容列表中隐藏。
hide-children 如果图层是 GroupLayerBuildingSceneLayerKMLLayerMapImageLayerTileLayerWMSLayer,则从内容列表中隐藏子图层。

可能值"show"|"hide"|"hide-children"

默认值:"show"
loaded Booleanreadonly inherited

指示图层的资源是否已加载。如果为 true,则可访问对象的所有属性。

默认值:false
loadError Errorreadonly inherited

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

默认值:null
loadStatus Stringreadonly inherited

表示 load 操作的状态。

描述
not-loaded 对象的资源尚未加载。
loading 对象的资源当前正在加载。
loaded 对象的资源已加载且未出现错误。
failed 无法加载对象的资源。有关更多详情,请参阅 loadError

可能值"not-loaded"|"loading"|"failed"|"loaded"

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

加载时发生的警告列表。

maxScale Number

图层在视图中可见时的最大比例 (放至最大)。如果地图放大至超过此比例,则图层将不可见。值为 0 表示该图层没有最大比例。maxScale 值应始终小于 minScale 值,并且大于或等于服务规范。

默认值:0
示例
// The layer will not be visible when the view is zoomed in beyond a scale of 1:1,000
layer.maxScale = 1000;
// The layer's visibility is not restricted to a maximum scale.
layer.maxScale = 0;
minScale Number

图层在视图中可见时的最小比例 (缩至最小)。如果地图缩小到超过此比例,则图层将不可见。值为 0 表示该图层没有最小比例。minScale 值应始终大于 maxScale 值,并且小于或等于服务规范。

默认值:0
示例
// The layer will not be visible when the view is zoomed out beyond a scale of 1:3,000,000
layer.minScale = 3000000;
// The layer's visibility is not restricted to a minimum scale.
layer.minScale = 0;

图层的不透明度。此值的范围在 10 之间,其中 0 是 100% 透明,而 1 为完全不透明。

默认值:1
示例
// Makes the layer 50% transparent
layer.opacity = 0.5;
outFields String[]
起始版本:GeoScene Maps SDK for JavaScript 4.15

服务中要包含在所有子图层中的每个要素的字段名称数组。要从所有子图层中的所有字段中获取值,请使用 ["*"]。BuildingSceneLayers 通常具有大量字段,因此获取所有值可能会导致加载时间变慢。outFields 中指定的字段将与所有子图层上的 renderingfiltering 所需的字段一起被请求。

要仅在特定子图层中包括字段,请使用子图层的 outFields 属性。

默认值:null
另请参阅
示例
// Get the specified fields from the service in all sublayers
sl.outFields = ["CreatedPhase", "DemolishedPhase", "BldgLevel"];
portalItem PortalItem

从中加载图层的门户项目。如果门户项目引用要素服务或场景服务,则可以使用 layerId 属性指定要加载的单个图层。

从版本 4.17 开始,可以从 GeoScene Online 和 GeoScene Enterprise 中托管的要素服务项目加载表。这仅适用于要素图层,如果 FeatureLayer.isTable 返回 true,将成功加载。

示例
// While this example uses FeatureLayer, this same pattern can be
// used for other layers that may be loaded from portalItem ids.
const layer = new FeatureLayer({
  portalItem: {  // autocasts as new PortalItem()
    id: "caa9bd9da1f4487cb4989824053bb847"
  }  // the first layer in the service is returned
});
// Set hostname when using an on-premise portal (default is GeoScene Online)
// geosceneConfig.portalUrl = "http://myHostName.geoscene.cn/geoscene";

// While this example uses FeatureLayer, this same pattern can be
// used for SceneLayers.
const layer = new FeatureLayer({
  portalItem: {  // autocasts as new PortalItem()
    id: "8d26f04f31f642b6828b7023b84c2188"
  },
  // loads the third item in the given feature service
  layerId: 2
});
// Initialize GeoJSONLayer by referencing a portalItem id pointing to geojson file.
const layer = new GeoJSONLayer({
  portalItem: new PortalItem({
    id: "81e769cd7031482797e1b0768f23c7e1",
    // optionally define the portal, of the item.
    // if not specified, the default portal defined is used.
    // see https://doc.geoscene.cn/javascript/4.25/api-reference/geoscene-config.html#portalUrl
    portal: new Portal({
      url: "https://www.geosceneonline.cn/geoscene"
    })
  }
});
// This snippet loads a table hosted in GeoScene Online.
const table = new FeatureLayer({
  portalItem: { // autocasts as geoscene/portal/PortalItem
    id: "123f4410054b43d7a0bacc1533ceb8dc"
  }
});

// Before adding the table to the map, it must first be loaded and confirm it is the right type.
table.load().then(function() {
  if (table.isTable) {
    map.tables.add(table);
  }
});
spatialReference SpatialReferenceautocast

图层的空间参考。

BuildingSceneLayer 中子图层的层次结构。通常包含一个概视图 BuildingComponentSublayer 和一个完整模型 BuildingGroupSublayer。但是,某些 BuildingSceneLayers 只能包含完整模型 BuildingGroupSublayer 或直接包含学科 BuildingGroupSublayers

summaryStatistics BuildingSummaryStatisticsreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.15

建筑物场景图层中所有组件图层的汇总统计数据。在访问其属性之前,必须加载此对象。

示例
// load the layer
buildingLayer.load().then(function() {
 // load the statistics on the summaryStatistics property
 // to be able to acccess them
 buildingLayer.summaryStatistics.load().then(function() {
   console.log(buildingLayer.summaryStatistics);
 });
});
title String

用于在某些地方标识它的图层标题,例如在 LegendLayerList 微件中。

通过服务 url 加载图层时,标题派生自服务名称。如果服务具有多个图层,则每个图层的标题将是服务名称和图层名称的串联。从门户项目加载图层时,将使用门户项目的标题。最后,如果图层作为 webmap 或 webscene 的一部分加载,则将使用存储在 webmap/webscene 中的图层标题。

type Stringreadonly

对于 BuildingSceneLayer,类型总是 "building-scene"

url String

图层或场景服务的 REST 端点的 URL。URL 可以指向 GeoScene Enterprise 或 GeoScene Online 上的资源。

当 url 直接指向服务而不是特定图层时,可以使用 layerId 属性指定该图层。如果未指定 layerId,则它将默认为服务中的第一个图层。

示例
// Layer from Scene Service on GeoScene Server
let sceneLayer = new SceneLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0"
});
// Can also be used if URL points to service and not layer
let layer = new SceneLayer({
  // Notice that the url doesn't end with /0
  url: "https://scenesampleserverdev.arcgis.com/geoscene/rest/services/Hosted/DevA_Trees/SceneServer",
  layerId: 0
});
version Objectreadonly

用于此服务的场景服务规范的版本。

属性
major Number

场景图层的主要版本。

minor Number

场景图层的次要版本。

versionString String

场景图层的完整版本字符串。

另请参阅
示例
// Prints the version to the console - e.g. 1.4, 1.5, etc.
console.log(layer.version.versionString);

指示图层在 View 中是否可见。当为 false 时,图层仍可能添加到视图引用的 Map 实例中,但其要素将在视图中不可见。

默认值:true
示例
// The layer is no longer visible in the view
layer.visible = false;

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor

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

更多详情
Layer
Promise<LayerView>

将图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图调用,例如 MapViewSceneView

更多详情
Layer

销毁图层和任何相关资源 (包括其 portalItem,如果它是图层上的属性)。

更多详情
Layer
Boolean

在实例上触发事件。

更多详情
Layer
Promise<Object>

在图层可用时,获取图层的自定义属性数据。

更多详情
Layer
Boolean

指示实例上是否存在与提供的事件名称相匹配的事件监听器。

更多详情
Layer
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor
Boolean

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。

更多详情
Layer
Boolean

isRejected() 可用于验证创建类的实例是否被拒绝。

更多详情
Layer
Boolean

isResolved() 可用于验证创建类的实例是否已解决。

更多详情
Layer
Promise

加载此类引用的资源。

更多详情
Layer
Promise<BuildingSceneLayer>

加载图层及其所有子图层。

更多详情
BuildingSceneLayer
Object

在实例上注册事件处理程序。

更多详情
Layer

移除对象拥有的句柄组。

更多详情
Accessor
Promise

一旦创建了类的实例,就可以使用when()

更多详情
Layer

方法详细说明

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()inherited

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

createLayerView(view, options){Promise<LayerView>}inherited

将图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图调用,例如 MapViewSceneView此方法在内部使用,没有直接调用它的用例

参数
view *

父视图。

options Object
optional

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

规范
optional

中止 layerview 创建的信号。

返回
类型 描述
Promise<LayerView> 使用 LayerView 实例解析。
destroy()inherited
起始版本:GeoScene Maps SDK for JavaScript 4.17

销毁图层和任何相关资源 (包括其 portalItem,如果它是图层上的属性)。一旦图层被破坏,则无法再使用。

被破坏的图层将从其父对象中移除,例如 MapWebMapWebSceneBasemapGroundGroupLayer

另请参阅
emit(type, event){Boolean}inherited

在实例上触发事件。仅当创建此类的子类时,才应使用此方法。

参数
type String

事件的名称。

event Object
optional

事件有效负载。

返回
类型 描述
Boolean 如果监听器收到通知,则为true
fetchAttributionData(){Promise<object>}inherited

在图层可用时,获取图层的自定义属性数据。

返回
类型 描述
Promise<Object> 解析为包含图层自定义属性数据的对象。
hasEventListener(type){Boolean}inherited

指示实例上是否存在与提供的事件名称相匹配的事件监听器。

参数
type String

事件的名称。

返回
类型 描述
Boolean 如果类支持输入事件,则返回 true。
hasHandles(groupKey){Boolean}inherited
起始版本: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}inherited

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。如果满足,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已完成 (已解决或已拒绝)。
isRejected(){Boolean}inherited

isRejected() 可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回 true

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

isResolved() 可用于验证创建类的实例是否已解决。如果已解决,则返回 true

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

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

开发人员在访问不会在 View 中加载的资源时,必须调用此方法。

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

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

参数
optional

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

返回
类型 描述
Promise 资源已加载时解析。
起始版本:GeoScene Maps SDK for JavaScript 4.11

加载图层及其所有子图层。

返回
类型 描述
Promise<BuildingSceneLayer> 加载完所有子图层时,进行解析。如果至少一个子图层无法加载,则拒绝。
另请参阅
示例
// Print the names of all components in the building scene layer after ensuring that they have been loaded
buildingSceneLayer.loadAll()
  .then(function() {
    const allComponentNames = buildingSceneLayer.allSublayers
      .filter(function(sublayer) { return sublayer.type === "building-component"; })
      .map(function(sublayer) { return sublayer.title; })
    console.log(allComponentNames.join("\n"));
  });
  .catch(function(error) {
    console.log("Error: one or more sublayer failed to load");
  });
on(type, listener){Object}inherited

在实例上注册事件处理程序。调用此方法将事件与监听器挂钩。

参数

要侦听的事件或者事件数组。

listener Function

事件触发时要调用的函数。

返回
类型 描述
Object 返回具有 remove() 方法的事件处理程序,可调用该方法来停止侦听事件。
属性 类型 描述
remove Function 调用时,从事件中移除侦听器。
示例
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});
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}inherited

一旦创建了类的实例,就可以使用when() 。此方法接受两个输入参数:callback 函数和 errback 函数。callback 在类的实例加载时执行。errback 在类的实例无法加载时执行。

参数
callback Function
optional

当 promise 解决时调用的函数。

errback Function
optional

当 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
});

事件概述

显示继承的事件 隐藏继承的事件
名称 类型 描述
{view: View,layerView: LayerView}

创建图层的 LayerView 并在视图中呈现后触发。

更多详情
Layer
{view: View,error: Error}

将图层添加到地图后,在创建 LayerView 期间出现错误时触发。

更多详情
Layer
{view: View,layerView: LayerView}

销毁图层的 LayerView 并不再在视图中呈现后触发。

更多详情
Layer

事件详细说明

layerview-createinherited

创建图层的 LayerView 并在视图中呈现后触发。

属性
view View

在其中创建 layerView 的视图。

layerView LayerView

在表示 layer 中图层的视图中进行渲染的 LayerView。

另请参阅
示例
// This function will fire each time a layer view is created for this
// particular view.
layer.on("layerview-create", function(event){
  // The LayerView for the layer that emitted this event
  event.layerView;
});
layerview-create-errorinherited

将图层添加到地图后,在创建 LayerView 期间出现错误时触发。

属性
view View

为图层创建 layerview 失败触发此事件的视图。

error Error

描述图层视图创建失败原因的错误对象。

另请参阅
示例
// This function fires when an error occurs during the creation of the layer's layerview
layer.on("layerview-create-error", function(event) {
  console.error("LayerView failed to create for layer with the id: ", layer.id, " in this view: ", event.view);
});
layerview-destroyinherited

销毁图层的 LayerView 并不再在视图中呈现后触发。

属性
view View

在其中销毁 layerView 的视图。

layerView LayerView

被销毁的表示图层的 LayerView。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息