SceneLayer

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

概览

SceneLayer 是一种图层类型,旨在用于在 SceneView 中按需流式传输和显示大量数据。SceneLayers 支持两种几何类型:和 3D 对象 (例如建筑物)。

san-francisco-buildings

您可通过搜索图库在 GeoScene Online 中查找许多 SceneLayers 示例。

city-scene-layer-guide

发布 SceneLayer

SceneLayer 可显示来自场景服务的数据。场景服务可以以适合 Web 流的开放格式保存大量要素。SceneLayer 从粗略的制图表达开始逐步加载这些要素,并根据特写视图的需要将其细化为更高的细节。

scenelayer-ny

通过上传场景图层包 (.slpk) 或从 GeoScene Pro 发布场景图层包,可以在 GeoScene OnlineGeoScene Enterprise 上托管场景服务。根据发布 SceneLayer 的方式,有两种类型的图层:具有关联要素图层的 SceneLayer仅具有缓存属性的 SceneLayer。有关更多信息,请参阅场景图层指南主题的发布部分

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

let sceneLayer = new SceneLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0"
});
let sceneLayer = new SceneLayer({
 portalItem: {
   id: "b8138adb2ba7479cadba52d382b34c3b"
 }
});

大多数情况下,最好从门户项目而不是场景服务 url 创建 SceneLayer,因为有关关联要素服务的信息存储在项目级别而不是服务级别。

如果从不同域请求场景服务,则需要启用 CORS 的服务器代理

尽管显示 SceneLayer 的内部逻辑在技术上是先进的,但它在 API 中的使用遵循与其他图层相同的模型。您可使用渲染器来设置 SceneLayer 的样式,并使用弹出窗口来检索属性信息并将其显示给用户。

数据可视化

就像其他图层一样,SceneLayers 可以使用渲染器进行可视化。可以使用 MeshSymbol3D 设置 3D 对象的样式。可以将 FillSymbol3DLayer 添加到 MeshSymbol3D 以可视化来自 SceneLayer 的 3D 类:

let symbol = {
  type: "mesh-3d",  // autocasts as new MeshSymbol3D()
  symbolLayers: [{
    type: "fill",  // autocasts as new FillSymbol3DLayer()
    material: { color: "red" }
  }]
};

sceneLayer.renderer = {
  type: "simple",  // autocasts as new SimpleRenderer()
  symbol: symbol
};

SceneLayers 还支持视觉变量,这使您可以轻松地以连续颜色可视化图层中的数字数据。例如,下图中使用的服务表示包含数值属性的建筑物要素,该属性存储每个建筑物中的居民数量。图层的渲染器使用颜色视觉变量根据给定字段的值沿连续的白色到蓝色色带对每个要素进行着色。白色要素代表离公共交通车站较远的建筑物,深蓝色要素代表离公共交通车站很近的建筑物 (步行时间少于 1 分钟)。将中间颜色分配给值介于低值和高值之间的建筑物。为了改善对 3D Object SceneLayers 形状的感知,还可使用边缘对其进行可视化。请参阅可视化概述主题,以了解有关数据可视化技术的详细信息。

scenelayer-edges

在具有视觉变量的数据驱动可视化中使用的属性必须可以访问 SceneLayer 的缓存。对于仅具有缓存属性的 SceneLayers 和具有关联要素图层的 SceneLayer,属性值均来自缓存。因此,如果要素图层上的属性发生更改,可视化效果将不会更新。将缓存属性的数量保持在最少可以提高 SceneLayer 的性能。因此,使用通过图层的缓存提供的属性是最佳实践。

过滤数据

可以使用 SQL where 子句对 SceneLayer 进行过滤。过滤是使用 definitionExpression 属性实现的。此属性使用缓存的 SceneLayer 属性在客户端上计算,并且仅支持标准化 SQL。

let layer = new SceneLayer({
 url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0",
 definitionExpression: "Type_Toit = 'plat' AND H_MAX <= 20"
});

过滤数据的另一种方法是在 SceneLayerView 上使用 FeatureFilter。这将仅显示满足过滤条件的要素。设置 geometryspatialRelationship 允许您根据传入几何的 spatialRelationship 过滤要素。目前仅支持 containsintersectsdisjoint 类型的空间关系。

或者,也可直接在图层上的 filter 属性上使用 SceneFilter。它的工作方式与 FeatureFilter 类似,但您可以定义多个几何对象。在保存图层时,也会在 WebScenes 中保留此过滤器。

有关详细信息,请参阅使用 FeatureFilter 过滤 SceneLayer使用 SceneFilter 过滤 SceneLayer 示例。

弹出窗口

点和 3D 对象场景图层可以使用 popupTemplate 属性自定义弹出窗口内容。具有关联要素图层的 SceneLayer 将在关联的要素图层中查询属性。对于仅具有缓存属性的 SceneLayer,属性来自缓存。还支持 popupTemplateexpressionInfo 的 Arcade 表达式。

custom-popups

查询

SceneLayer 和 SceneLayerView 均支持查询,但行为不同。

查询 SceneLayer 将从关联要素图层的属性中检索结果。如果图层没有关联的要素图层,则查询将被拒绝并显示错误。图层上的查询功能强大,因为它们是在 SceneLayer 中的所有要素上进行的,并且还支持高级查询。当 spatialRelationship 设置为 intersectscontainsdisjoint 时,支持空间查询。

为了在 SceneLayerView 上进行基于属性的查询,需要在 SceneLayer 的 outFields 属性中指定必填字段,以确保客户端上的属性值可用于查询。您可以使用 availableFields 来检查客户端上可用的字段。在 SceneLayerView 上,可以通过设置查询的 geometryspatialRelationship 来进行空间查询。请注意,对于 3D Object SceneLayers,这些空间关系是基于 Extent 而不是要素的覆盖区进行评估的。SceneLayerView 上的查询可返回当前在视图中加载的要素的结果。

查询方法 SceneLayer (仅当其具有关联的要素图层时才有效) SceneLayerView (适用于所有场景图层)
queryExtent 返回满足查询的所有要素的 2D 范围 返回满足查询的当前加载要素的 3D 范围
queryFeatureCount 返回满足查询的所有要素的数量 返回满足查询的当前加载要素的数量
queryFeatures 返回满足查询的所有要素 返回满足查询的当前加载的要素
queryObjectIds 返回满足查询的所有要素的 objectIds 返回满足查询的当前加载要素的 objectIds

已知限制

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

获取 SceneLayers 的几何/范围

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

在任何查询方法上将 returnGeometry 设置为 true 时,点 SceneLayers 可返回几何图形。此外,可以使用 SceneLayer 上的 queryExtent() 检索多个点的 2D 范围。无法仅获取具有缓存属性的 SceneLayer 的范围。

编辑:属性更新

目前,只有场景图层上的 applyEdits 方法支持属性更新。可编辑 SceneLayer 的先决条件是启用了编辑和更改跟踪的关联 FeatureLayer。有关发布的详细信息,请参阅场景图层指南主题的发布部分。具有已编辑属性的要素将使用更新的属性进行渲染,直到已编辑要素的数量超过 50,000。之后,将不检索已编辑的属性,并使用缓存的过时属性来渲染要素。在达到此最大数量之前,重新构建场景图层的缓存。

场景图层属性更新的一个用例是更改状态和类型,请检查此示例:示例 - SceneLayer 属性编辑。在此示例中,可编辑的要素图层将共享给所有人。因此,每个人都可以修改这些数据。在实际用例中,只有经过授权的编辑者才能编辑图层。在这种情况下,关联的要素图层不会公开共享,并且只有编辑者才能访问。要使编辑内容对场景图层用户可见,必须重新构建缓存。

已知限制

  • 由于向工作人员传输数据时的大小限制,具有非常复杂几何结构的图层可能无法在 Firefox 中正确加载。
另请参阅

构造函数

new SceneLayer(properties)
参数
properties Object
optional

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

示例
// Typical usage
let layer = new SceneLayer({
  // URL to the service
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0"
});

属性概述

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

描述图层的受支持功能。

更多详情
SceneLayer
String

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

更多详情
SceneLayer
String

类的名称。

更多详情
Accessor
String

用于过滤要素的 SQL where 子句。

更多详情
SceneLayer
Object

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

更多详情
SceneLayer
Collection<number>

视图中未显示的 ObjectID 列表。

更多详情
SceneLayer
FeatureReductionSelection

配置用于清理视图中重叠要素的方法。

更多详情
SceneLayer
Field[]

图层中可访问的字段数组。

更多详情
SceneLayer
FieldsIndex

便捷属性,可用于按字段名称对字段进行不区分大小写的查找。

更多详情
SceneLayer
SceneFilter

多边形几何的集合,可掩膜图层的不同部分。

更多详情
SceneLayer
LayerFloorInfo

将场景图层配置为楼层感知型图层时,该图层将定义 floorInfo 属性。

更多详情
SceneLayer
Extent

图层的完整范围。

更多详情
Layer
String

图层中要素的几何类型。

更多详情
SceneLayer
String

分配给图层的唯一 ID。

更多详情
Layer
LabelClass[]

此图层的标注定义,指定为 LabelClass 的数组。

更多详情
SceneLayer
Boolean

指示是否显示此图层的标注。

更多详情
SceneLayer
Number

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

更多详情
SceneLayer
Boolean

指示图层是否将包含在图例中。

更多详情
SceneLayer
String

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

更多详情
Layer
Boolean

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

更多详情
Layer
Error

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

更多详情
Layer
String

表示 load 操作的状态。

更多详情
Layer
Object[]

加载时发生的警告列表。

更多详情
Layer
Number

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

更多详情
SceneLayer
Number

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

更多详情
SceneLayer
String

包含每个图形对象 ID 的字段的名称。

更多详情
SceneLayer
Number

图层的不透明度。

更多详情
Layer
String[]

要包含在每个要素中的字段名称数组。

更多详情
SceneLayer
Boolean

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

更多详情
SceneLayer
PopupTemplate

图层的弹出模板。

更多详情
SceneLayer
PortalItem

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

更多详情
SceneLayer
Renderer

分配给图层的渲染器。

更多详情
SceneLayer
Boolean

SceneView 中对屏幕大小的点符号应用透视缩放。

更多详情
SceneLayer
SpatialReference

图层的空间参考。

更多详情
SceneLayer
String

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

更多详情
SceneLayer
String对于 SceneLayer,类型总是 "scene"更多详情SceneLayer
String

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

更多详情
SceneLayer
Object

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

更多详情
SceneLayer
Boolean

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

更多详情
Layer

属性详细信息

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"
});
capabilities Objectreadonly

描述图层的受支持功能。

属性
query Object

描述可对图层中的要素执行的查询操作。

规范
maxRecordCount Number

将为给定查询返回的最大记录数。

supportsCentroid Boolean

指示是否可以返回与每个面要素相关联的几何质心。此操作仅在 GeoScene Online 托管要素服务中受支持。

supportsDistance Boolean

指示图层的查询操作是否支持输入几何的缓冲距离。

supportsDistinct Boolean

指示图层是否支持根据 outFields 中指定的字段查询不同的值。

supportsDisjointSpatialRelationship Boolean

指示查询操作是否支持 disjoint 空间关系。这仅对 有效。

supportsCacheHint Boolean

指示查询操作是否支持缓存提示。这仅对 有效。

supportsExtent Boolean

指示图层的查询响应是否包括要素的范围。

supportsGeometryProperties Boolean

指示图层的查询响应是否包含几何属性,包括形状面积和长度属性。2016 年 12 月以来创建的 GeoScene Online 托管要素服务和 1.7 版本以来创建的 GeoScene Enterprise 要素服务均支持此操作。

supportsHavingClause Boolean

指示图层是否支持服务上的 having 子句。

supportsOrderBy Boolean

指示查询响应中返回的要素是否可以按一个或多个字段排序。

supportsPagination Boolean

指示查询响应是否支持分页。

supportsPercentileStatistics Boolean

表示图层是否支持百分位数统计类型

supportsQueryGeometry Boolean

表示查询响应是否包含查询几何。这仅对 有效。

supportsQuantization Boolean

指示查询操作是否支持将几何投影到虚拟网格上。

supportsQuantizationEditMode Boolean

指示查询操作是否支持旨在用于编辑模式的量化 (给定空间参考的最高分辨率)。

supportsResultType Boolean

表示是否可以控制查询操作返回的要素数量。

supportsSqlExpression Boolean

表示查询操作是否支持 SQL 表达式。

supportsStandardizedQueriesOnly Boolean

指示查询操作是否支持使用标准化查询。

supportsStatistics Boolean

指示图层是否支持基于字段的统计函数。需要 GeoScene Server 服务 1.1 或更高版本。

supportsHistoricMoment Boolean

表示图层是否支持历史时刻查询。

data Object

描述图层中数据的特征。

规范
supportsZ Boolean

指示图层中的要素是否支持 z 值。对于场景图层,这始终是 true。

editing Object

描述可通过 applyEdits() 对图层中的要素执行的编辑功能。

规范
supportsGeometryUpdate Boolean

指示是否可以编辑图层中要素的几何。目前,不支持对场景图层进行几何编辑。

supportsGlobalId Boolean

指示客户端提供的 globalId 值是否用于 applyEdits

supportsRollbackOnFailure Boolean

表示在编辑要素时,rollbackOnFailureEnabled 参数是否可以设置为 truefalse

operations Object

描述可对图层中的要素执行的操作。

规范
supportsAdd Boolean

指示是否可将新要素添加到图层中。对于场景图层,目前这始终为 false。

supportsDelete Boolean

指示是否可从图层中删除要素。对于场景图层,目前这始终为 false。

supportsUpdate Boolean

指示是否可以更新图层中的要素。

supportsEditing Boolean

指示是否可以编辑图层中的要素。使用 supportsAddsupportsUpdatesupportsDelete 来确定支持哪些编辑操作。

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

declaredClass Stringreadonly inherited
起始版本:GeoScene Maps SDK for JavaScript 4.7

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

definitionExpression String
起始版本:GeoScene Maps SDK for JavaScript 4.3

用于过滤要素的 SQL where 子句。仅满足定义表达式的要素才会保留在客户端上并显示在 View 中。当仅显示图层中数据的子集时,设置定义表达式非常有用。

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

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

弃用警告

未来,设置 definitionExpression 将加载客户端上的所有节点,丢弃不匹配过滤器的要素。这将使用较少的内存,但过滤器更新将比当前版本慢。仅当过滤器很少更改时,才应使用 definitionExpression,且移除过滤的要素可释放内存以供场景中的其他数据使用。

对于快速客户端过滤器,请改用 SceneLayerView.filterwhere 属性。

示例
let layer = new SceneLayer({
   url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Paris_3D_Local_WSL2/SceneServer/layers/0",
   definitionExpression: "Type_Toit = 'plat' AND H_MAX <= 20"
 });
elevationInfo Object

指定要素在垂直轴 (z) 上的放置方式。有关如何使用该属性的示例,请参阅 ElevationInfo 示例

relative-to-scene 模式不会影响 3D 对象 SceneLayers。具有几何的 SceneLayers 支持下面列出的所有高程模式。

属性
mode String

定义要素相对于地形表面的放置方式。有关可能值列表,请参见下表。

模式 描述
on-the-ground 要素放置在地形表面上。这是使用 ObjectSymbol3DLayers 渲染的几何要素的默认值。
relative-to-ground 要素放置在相对于地形表面的高程处。要素高程是由地形高程、 offset 值和几何的 z 值 (如果存在) 的总和来确定的。这是使用 IconSymbol3DLayers 渲染的 Point 几何的默认值。
absolute-height 要素放置在海平面以上的绝对高程 (z 值) 处。此 z 值是通过将 offset 值和几何的 z 值 (如果存在) 相加来确定的。它没有考虑地形的高度。这是具有 3D 对象几何和几何 (其中 hasZtrue) 的要素的默认值。
relative-to-scene 要素与建筑物和其他对象对齐,这些对象为 3D 对象 SceneLayerIntegratedMeshLayer 的一部分,具体取决于哪个高程更高。如果图形不在建筑物或任何其他要素的正上方,则将其与地形表面高程对齐。如果存在,则将几何的 z 值添加到高程中。

可能值"on-the-ground"|"relative-to-ground"|"absolute-height"|"relative-to-scene"

offset Number
optional
默认值:0

高程偏移,将其添加到要素的垂直位置。当 mode = "on-the-ground" 时,则此属性无效。

unit String
optional
默认值:meters

offset 值的单位。

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

excludeObjectIds Collection<number>
起始版本:GeoScene Maps SDK for JavaScript 4.23

视图中未显示的 ObjectID 列表。

起始版本:GeoScene Maps SDK for JavaScript 4.4

配置用于清理视图中重叠要素的方法。如果未设置此属性 (或设置为 null),则单独绘制每个要素。

仅具有非叠加 IconText 符号图层的点场景图层支持此属性。

declutter

已知限制

在点 SceneLayer 图层上应用 featureReduction 时,更新很慢。这将在即将发布的版本中得到解决。

示例
layer.featureReduction = {
  type: "selection"
};
fields Field[]readonly

图层中可访问的字段数组。根据场景服务的不同,字段对某些功能的支持可能有限。使用 getFieldUsageInfo() 查询可能使用特定字段的上下文 (渲染器、标注、弹出窗口或查询)。

fieldsIndex FieldsIndexreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.12

便捷属性,可用于按字段名称对字段进行不区分大小写的查找。它还可以提供图层中日期字段的列表。

示例
// lookup a field by name. name is case-insensitive
const field = layer.fieldsIndex.get("SoMeFiEld");

if (field) {
  console.log(field.name); // SomeField
}
起始版本:GeoScene Maps SDK for JavaScript 4.24

多边形几何的集合,可掩膜图层的不同部分。spatialRelationship 属性可定义是否应掩膜多边形内部或外部的内容。

另请参阅
示例
const layer = new SceneLayer({ ... })

// create a polygon
const polygon = new Polygon({ ... });

// create the masking
const filter = new SceneFilter({ geometries: [polygon], spatialRelationship: "contains" });

// add the mask to the SceneLayer
layer.filter = filter;
起始版本:GeoScene Maps SDK for JavaScript 4.19

将场景图层配置为楼层感知型图层时,该图层将定义 floorInfo 属性。楼层感知型图层是包含室内 GIS 数据的图层,用于表示可位于建筑物特定楼层的要素。

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

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

图层中要素的几何类型。

可能值"point"|"mesh"

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

labelingInfo LabelClass[]

此图层的标注定义,指定为 LabelClass 的数组。使用此属性可以指定图层的标注属性,例如标注表达式、放置和大小。

已知限制

每个要素只能有一个标注。具有不同 where 子句的多个标注类可用于对属于同一图层的不同要素具有不同的标注样式 (例如,湖泊为蓝色标注,公园为绿色标注)。

另请参阅
示例
let statesLabelClass = new LabelClass({
  labelExpressionInfo: { expression: "$feature.NAME" },
  symbol: {
    type: "label-3d",  // autocasts as new LabelSymbol3D()
    symbolLayers: [{
      type: "text",  // autocasts as new TextSymbol3DLayer()
      material: { color: [ 49,163,84 ] },
      size: 12  // points
    }]
  }
});

sceneLayer.labelingInfo = [ statesLabelClass ];
labelsVisible Boolean

指示是否显示此图层的标注。如果为 true,标注将按 labelingInfo 属性中定义的方式显示。

默认值:true
另请参阅
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
});
legendEnabled Boolean

指示图层是否将包含在图例中。

默认值:true
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;
objectIdField String

包含每个图形对象 ID 的字段的名称。如果未明确指定,这可通过采用 oid 类型的第一个字段自动从服务的字段派生。

另请参阅

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

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

要包含在每个要素中的字段名称数组。要从图层的所有字段中获取值,请使用 ["*"]。将请求在 outFields 中指定的字段,以及用于渲染标注和设置图层高程信息的必填字段。必填字段和 outFields 用于填充 SceneLayerView.availableFields。如果字段不属于用于渲染的必填字段,则可设置此属性以包含将用于客户端查询的字段。

默认值:null
另请参阅
示例
// Includes all fields from the service in the layer
sl.outFields = ["*"];
// Get the specified fields from the service in the layer
// These fields will be added to SceneLayerView.availableFields
// along with rendering and labeling fields. Use these fields
// for client-side querying.
sl.outFields = ["NAME", "POP_2010", "FIPS", "AREA"];
// set the outFields for the layer coming from webscene
webscene.when(function () {
  layer = webscene.layers.getItemAt(1);
  layer.outFields = ["*"];
});
popupEnabled Boolean

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

默认值:true
另请参阅
popupTemplate PopupTemplateautocast

图层的弹出模板。在图层上设置时,popupTemplate 允许用户在使用文本和/或图表选择要素时访问属性并在视图的弹出窗口中显示其值。有关 PopupTemplate 如何与 FeatureLayer 交互的例子,请参阅 PopupTemplate sample。在此图层类型上设置 PopupTemplate 的方式与 FeatureLayer 相同。

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

另请参阅
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);
  }
});

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

另请参阅
示例
// all features in the layer will be visualized with
// a blue color
layer.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" }
    }]
  }
};
screenSizePerspectiveEnabled Boolean
起始版本:GeoScene Maps SDK for JavaScript 4.4

SceneView 中对屏幕大小的点符号应用透视缩放。当为 true 时,通过将特定透视投影应用于要素大小,屏幕大小对象 (例如 icons, labels or callouts) 可以更好地集成到 3D 场景中。这仅在使用 SceneView 时适用。

layer.screenSizePerspectiveEnabled = true

screen-size-perspective

layer.screenSizePerspectiveEnabled = false

no-screen-size-perspective

已知限制

屏幕尺寸透视目前没有针对相机非常靠近地面的情况进行优化,或者对于点要素远离地面的场景进行优化。在这些情况下,最好关闭屏幕尺寸透视。由于屏幕大小透视会根据与相机的距离改变大小,因此在使用大小视觉变量时,应将其设置为 false。

spatialReference SpatialReferenceautocast

图层的空间参考。

title String

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

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

type Stringreadonly

对于 SceneLayer,类型总是 "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
Promise<Object>

将属性编辑应用于关联 FeatureLayer 中的要素。

更多详情
SceneLayer

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

更多详情
Layer
Promise<LayerView>

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

更多详情
Layer
PopupTemplate

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

更多详情
SceneLayer
Query

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

更多详情
SceneLayer

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

更多详情
Layer
Boolean

在实例上触发事件。

更多详情
Layer
Promise<Object>

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

更多详情
Layer
Field

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

更多详情
SceneLayer
Domain

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

更多详情
SceneLayer
Object

获取字段使用信息。

更多详情
SceneLayer
Boolean

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

更多详情
Layer
Boolean

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

更多详情
Accessor
Boolean

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

更多详情
Layer
Boolean

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

更多详情
Layer
Boolean

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

更多详情
Layer
Promise

加载此类引用的资源。

更多详情
Layer
Object

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

更多详情
Layer
Object

从服务中查询给定字段的缓存统计信息。

更多详情
SceneLayer
Promise<Object>

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

更多详情
SceneLayer
Promise<number>

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

更多详情
SceneLayer
Promise<FeatureSet>

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

更多详情
SceneLayer
Promise<number[]>

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

更多详情
SceneLayer

移除对象拥有的句柄组。

更多详情
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() 进行删除。如果未提供键,则句柄将被添加到默认组。

applyEdits(edits, options){Promise<object>}

将属性编辑应用于关联 FeatureLayer 中的要素。可编辑 SceneLayer 的先决条件是启用了编辑和更改跟踪的关联 FeatureLayer。具有已编辑属性的要素将使用更新的属性进行渲染,直到已编辑要素的数量超过 50,000。之后,将不检索已编辑的属性,并使用缓存的过时属性来渲染要素。有关更多详细信息,请参阅编辑部分。

参数
规范
edits Object

包含要更新要素的对象。

规范
updateFeatures Graphic[]|Collection<Graphic>
optional

要更新的要素的数组或集合。每个要素都必须具有有效的 objectId。更新要素时,必须提供不可为 null 字段的值。日期字段必须具有表示通用时间的数值

options Object
optional

编辑要素时,要指定的其他编辑选项。

规范
rollbackOnFailureEnabled Boolean
optional

指示是否仅在所有编辑成功提交后才应用编辑。如果为 false,则即使某些提交的编辑失败,服务器也会应用成功的编辑。如果为 true,则服务器将仅在所有编辑均成功后才应用编辑。如果使用此参数,则图层的 capabilities.editing.supportsRollbackOnFailure 属性必须为 true。如果图层的 supportsRollbackOnFailurefalse,则无论参数如何设置,rollbackOnFailureEnabled 都将始终为 true。

globalIdUsed Boolean
optional

指示是否可以使用要素的 globalIds 应用编辑。仅当图层的 capabilities.editing.supportsGlobalId 属性为 true 时,此参数才适用。当为 false 时,则将忽略与要素一起提交的 globalIds,且服务将为新要素分配新的 globalIds。当为 true 时,则 globalIds 必须与新要素一起提交。更新现有要素时,如果 globalIdUsedfalse,则必须提供要更新的要素的 objectIds。如果 globalIdUsedtrue,则必须提供要更新的要素的 objectIds。删除现有要素时,请将此属性设置为 false,因为删除操作仅接受 API 当前版本的 objectIds

返回
类型 描述
Promise<Object> 解析为包含编辑结果的对象。有关详细信息,请参阅下面的对象规范表。
属性 类型 描述
updateFeatureResults FeatureEditResult[] 更新要素的结果。
cancelLoad()inherited

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

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

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

参数
view *

父视图。

options Object
optional

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

规范
optional

中止 layerview 创建的信号。

返回
类型 描述
Promise<LayerView> 使用 LayerView 实例解析。
createPopupTemplate(options){PopupTemplate}
起始版本:GeoScene Maps SDK for JavaScript 4.11

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

参数
optional

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

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

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

返回
类型 描述
Query 表示图层的定义表达式的查询对象。
destroy()inherited
起始版本:GeoScene Maps SDK for JavaScript 4.17

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

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

另请参阅
emit(type, event){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.5

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

参数
type String

事件的名称。

event Object
optional

事件有效负载。

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

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

返回
类型 描述
Promise<Object> 解析为包含图层自定义属性数据的对象。
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。域可以是 CodedValueDomainRangeDomain

参数
fieldName String

字段名称。

options Object
optional

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

规范
feature Graphic

Domain 分配到的要素。

返回
类型 描述
Domain 与给定要素的给定字段名称相关联的 Domain 对象。
getFieldUsageInfo(fieldName){Object}

获取字段使用信息。字段的使用取决于它是否存储为场景服务缓存的一部分。返回的对象包含以下用法信息:

属性 类型 描述
supportsRenderer boolean 表示可以在渲染器中使用字段 (例如,在视觉变量中),请参阅渲染器
supportsLabelingInfo boolean 表示可用于标注的字段,请参阅 labelingInfo
supportsPopupTemplate boolean 表示可以在弹出模板中使用字段,请参阅 popupTemplate
supportsLayerQuery boolean 表示可以在图层查询中使用字段,请参阅 queryFeatures()
参数
fieldName String

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

返回
类型 描述
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 资源已加载时解析。
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);
});
queryCachedStatistics(fieldName, options){Object}
起始版本:GeoScene Maps SDK for JavaScript 4.13

从服务中查询给定字段的缓存统计信息。查看 I3S SceneLayer 规范中的响应详细信息

参数
fieldName String

要查询其统计信息的字段的名称。

options Object
optional

具有以下属性的对象。

规范
optional

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

返回
类型 描述
Object 统计信息文档。
示例
layer.queryCachedStatistics("FIELDNAME")
 .then(function(statistics) {
   console.log(statistics);
});
queryExtent(query, options){Promise<object>}

对关联的要素服务执行查询,并返回满足查询条件的要素的 2D 范围。目前,可以使用 SceneLayerView.queryExtent() 返回 3D 范围,但这只会返回视图中当前要素的 3D 范围。仅当 SceneLayer 具有关联的要素图层时,查询才会成功。如果关联的要素图层不可用,则会抛出名为 scenelayer:query-not-available 的错误。更多关于查询的信息,请参阅上述类描述中的 Querying 部分。

参数
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有以下属性的对象。

规范
optional

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

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

对关联的要素服务执行查询,并返回满足查询条件的要素数。仅当启用图层的 supportsLayerQuery 功能时,查询才会成功。使用 getFieldUsageInfo() 方法检查图层是否支持查询。如果未启用查询,则会抛出名为 scenelayer:query-not-available 的错误。更多关于查询的信息,请参阅上述类描述中的 Querying 部分。

参数
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有以下属性的对象。

规范
optional

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

返回
类型 描述
Promise<number> 解析为满足查询的要素计数。
另请参阅
queryFeatures(query, options){Promise<FeatureSet>}

对关联的要素服务执行查询并返回 FeatureSet。仅当启用图层的 supportsLayerQuery 功能时,查询才会成功。使用 getFieldUsageInfo() 方法检查图层是否支持查询。如果未启用查询,则会抛出名为 scenelayer:query-not-available 的错误。更多关于查询的信息,请参阅上述类描述中的 Querying 部分。

参数
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有以下属性的对象。

规范
optional

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

返回
类型 描述
Promise<FeatureSet> 解析为包含满足查询的要素的 FeatureSet
另请参阅
queryObjectIds(query, options){Promise<number[]>}

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

参数
optional
自动转换自 Object

指定查询参数。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 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}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.6

一旦创建了类的实例,就可以使用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。

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