主题
Layer
字数统计: 10k 字
阅读时长: 约 28 分钟
当前版本: 4.29
AMD:
require(["geoscene/layers/Layer"], (Layer) => { /* code goes here */ });
ESM:
import Layer from "@geoscene/core/layers/Layer.js";
类:
geoscene/layers/Layer
继承于:Layer->Accessor
子类:BaseDynamicLayer、BaseElevationLayer、BaseTileLayer、BuildingSceneLayer、CSVLayer、DimensionLayer、ElevationLayer、FeatureLayer、GeoJSONLayer、GeoRSSLayer、GraphicsLayer、GroupLayer、ImageryLayer、ImageryTileLayer、IntegratedMesh3DTilesLayer、IntegratedMeshLayer、KMLLayer、KnowledgeGraphLayer、KnowledgeGraphSublayer、LineOfSightLayer、MapImageLayer、MapNotesLayer、MediaLayer、OGCFeatureLayer、OrientedImageryLayer、PointCloudLayer、RouteLayer、SceneLayer、StreamLayer、SubtypeGroupLayer、TileLayer、UnknownLayer、UnsupportedLayer、VectorTileLayer、VoxelLayer、WCSLayer、WFSLayer、WMSLayer、WMTSLayer、WebTileLayer
起始版本:GeoScene Maps SDK for JavaScript 4.0
图层是地图最基本的组成部分。它是代表现实世界现象的矢量图形、栅格影像或 3D 对象形式的空间数据集合。图层可能包含存储矢量数据的离散要素或存储栅格数据的连续像元/像素。
对于基于矢量的图层,例如 FeatureLayer 和 GraphicsLayer,图层中包含的每个要素都有一个几何,允许在视图中将其渲染为具有空间上下文的图形。图层中的要素还包含提供附加信息的数据属性,这些信息可以在弹出窗口中查看并用于渲染图层。
要创建图层,您必须使用 Layer 的子类之一或调用 Layer.fromPortalItem() 方法。图层的一些示例包括:
道路和高速公路可以使用 FeatureLayer 中的线性要素来表示
宗地地块可以在 MapImageLayer 中显示为多边形
卫星影像可以在 TileLayer 中显示为切片影像
为了进行可视化和分析,可以将多个图层添加到同一地图中,并相互叠加。有关如何向地图添加图层的其他信息,请参阅地图。图层在具有 LayerView 的 View 中进行渲染。
从广义上讲,图层可用于以下目的:
显示地理环境的位置
查询数据
显示分类和/或数值数据
分析
所有图层类型都继承自 Layer。要了解每种图层类型的详细信息,并比较和对比其数据源和功能,请参阅下表。
用于查询、可视化、分析数据的图层
图层类型 | 数据源 | 数据类型 | 要素 | 局限性 |
---|---|---|---|---|
FeatureLayer | GeoScene FeatureServer/MapServer、GeoScene 门户项目或客户端图形 | 作为矢量图形下载的点、折线、多边形 | 客户端处理、弹出模板、带有 2D 和 3D 符号的渲染器、查询、编辑 (在未来版本中) | 显示的要素数量有限;可能需要大量下载,具体取决于要素数量 |
GraphicsLayer | 客户端图形 | 显示为矢量图形的点、折线、多边形 | 没有几何方案。点、折线和多边形可以存储在单个图层中。 | 没有渲染器或弹出模板;可视化和弹出模板是按逐个图形处理的。 |
MapImageLayer | GeoScene MapServer、GeoScene 门户项目 | 在单个影像中导出的点、折线、多边形、栅格 | 可能包含嵌套的子图层。渲染器、弹出窗口模板、不透明度和标注的服务器端处理,用于快速显示许多要素。可用于显示、查询和联接已注册工作空间中的数据 | 不支持编辑 |
SceneLayer | GeoScene SceneServer、GeoScene 门户项目 | 点和多面体几何 | 可以在客户端上显示大量要素。非常适合渲染 3D 要素 | 不支持 2D;通过关联的要素图层进行编辑 |
CSVLayer | CSV 文件 | 作为矢量图形下载的点 | 客户端处理、弹出模板、带有 2D 和 3D 符号的渲染器 | 可能需要大量下载,具体取决于要素的数量 |
KMLLayer | KML 文件 (.kml、.kmz),GeoScene 门户项目 | 显示为矢量图形的点、折线、多边形 | 在地图或 webmap 中显示 KML 文件 | 不支持 3D;需要从 geosceneonline.cn 或 GeoScene Enterprise 访问实用程序服务 |
StreamLayer | GeoScene StreamServer | 作为矢量图形下载的点 | 实时下载和更新要素位置 | N/A |
ImageryLayer | GeoScene ImageServer、GeoScene 门户项目 | 导出为单个影像的栅格数据 | 客户端和服务器端像素过滤和渲染;弹出模板;查询 | N/A |
ImageryTileLayer | GeoScene ImageServer、GeoScene 门户项目 | 导出为单个影像的栅格数据 | 客户端渲染;弹出模板 | N/A |
GeoJSONLayer | GeoJSON | 点、折线、多边形 | 渲染器、标注、编辑、弹出窗口 | 数据必须符合 RFC 7946 规范,其声明坐标采用 SpatialReference WGS84 |
OGCFeatureLayer | OGC API - 要素 | 点、折线、多边形 | 渲染器、标注、弹出窗口 | 数据必须符合 RFC 7946 规范,其声明坐标采用 SpatialReference WGS84 |
GeoRSSLayer | GeoRSS 源 | 点、折线、多边形 | 无几何方案;弹出模板 | 不支持 3D;不支持渲染器 |
DimensionLayer | GeoScene WebScene | DimensionAnalysis | 客户端长度尺寸 | 不支持 2D |
LineOfSightLayer | GeoScene WebScene | LineOfSightAnalysis | 视线分析的观察者和目标 | 不支持 2D |
MapNotesLayer | GeoScene WebMap、GeoScene 门户项目 | 点、折线、多边形、文本 | Webmap 中的地图注释 | 不支持 3D;只读 |
WCSLayer | WCS 服务 | 导出为单个影像的栅格数据 | OGC 规范 | N/A |
WFSLayer | WFS 服务,GeoScene 门户项目 | 点、多点、线、多边形 | OGC 规范 | 数据必须为 GeoJSON 格式,仅支持版本 2.0.0 |
WMSLayer | WMS 服务、GeoScene 门户项目 | 导出为单个影像的数据 | OGC 规范 | N/A |
BaseDynamicLayer | GeoScene MapServer、WMS 服务 | 导出为单个影像的数据 | 可对此类进行扩展,以创建一个动态地图图层 | 不支持 3D;导出的影像无法在浏览器中缓存 |
BuildingSceneLayer | GeoScene SceneServer、GeoScene 门户项目 | 数据在 BuildingGroupSublayers 中进行组织,其中包含 BuildingComponentSublayers | 可视化建筑物的复杂数字模型并与其组件进行交互 | 不支持 2D |
SubtypeGroupLayer | GeoScene FeatureServer/MapServer、GeoScene 门户项目 | 作为矢量图形下载的点、折线、多边形 | 包含要素服务中每个子类型的子图层;每个子图层都可使用自己的渲染器、弹出窗口和标注进行单独配置 | 不支持 3D;在子图层级别没有编辑支持 |
KnowledgeGraphLayer | GeoScene KnowledgeGraphService | 数据分为空间子图层和非空间子图层。空间子图层包含点、多点、线和面 | 为图层中的每个命名类型包含一个子图层;可以查询每个子图层;空间子图层可以使用其自己的渲染器、弹出窗口和标注进行单独配置 | 只能添加到 Map 实例。不是门户项目,无法添加到 WebMap 或 MapViewer。需要 GeoScene Enterprise 4.1 |
用于提供地理环境的图层
图层类型 | 数据源 | 数据类型 | 要素 | 局限性 |
---|---|---|---|---|
TileLayer | GeoScene MapServer、GeoScene 门户项目 | 影像切片 | 大型数据集的性能更好;查询要素 | 无编辑,客户端渲染或弹出模板;3D 视图中的一些方案限制。 |
BaseTileLayer | GeoScene MapServer、GeoScene 门户项目 | 影像切片 | 可以扩展此类以创建自定义切片图层 | 无编辑,客户端渲染或弹出模板;3D 视图中的一些方案限制。 |
VectorTileLayer | GeoScene 门户项目 | 渲染为矢量切片的点、折线和面 | 要素可在客户端设置样式并用作切片底图 | 无编辑、客户端渲染或弹出模板。 |
IntegratedMeshLayer 或 IntegratedMesh3DTilesLayer | GeoScene SceneServer、GeoScene 门户项目 | 具有纹理的三角网格 | 显示具有高细节的 3D 对象 | 不支持 2D |
VoxelLayer | GeoScene SceneServer、GeoScene 门户项目 | 多维体素立方体 | 显示多维体积现象 (例如,地下模型) | 不支持 2D |
ElevationLayer | GeoScene ImageServer、GeoScene 门户项目 | 切片高程网格/表面 | 在 3D 视图中渲染高程表面 | 不支持 2D |
BaseElevationLayer | GeoScene ImageServer、GeoScene 门户项目 | 切片高程网格/表面 | 可以扩展此类以创建自定义高程图层 | 不支持 2D |
PointCloudLayer | GeoScene SceneServer、GeoScene 门户项目 | 点云 (例如,从 LiDAR 收集) | 渲染器;点云的快速显示 | 不支持 2D |
OpenStreetMapLayer | OpenStreetMap 切片服务 | 影像切片 | 显示 OpenStreetMap 切片内容 | N/A |
WMTSLayer | WMTS tile 服务、GeoScene 门户项目 | 影像切片 | OGC 规范 | N/A |
WebTileLayer | 非 GeoScene、非 OGC 和非 OSM 切片服务 | 影像切片 | N/A | 无编辑、客户端渲染或弹出模板。 |
BingMapsLayer | Bing 空间数据服务数据 | 影像切片 | 显示 Microsoft 的 Bing 切片内容 | 需要 Bing 地图密钥;支持三种地图样式:road、aerial 和 hybrid |
MediaLayer | HTMLVideoElement、HTMLImageElement 或 HTMLCanvasElement | 图像/视频元素 | 在地图上的指定地理位置处显示图像和视频元素 | 目前不支持 GIF/APNG |
其他图层
图层类型 | 数据源 | 数据类型 | 要素 | 局限性 |
---|---|---|---|---|
GroupLayer | 其他图层类型的任意组合 | N/A | 将两个或多个图层合并为一个图层 | N/A |
属性概述
所有属性都可以设置、获取和监听。请参阅使用属性主题。
名称 | 类型 | 描述 | 类 |
---|---|---|---|
declaredClass | String | 类的名称。 | Accessor |
fullExtent | Extent | 图层的完整范围。 | Layer |
id | String | 分配给图层的唯一 ID。 | Layer |
listMode | String | 指示图层在 LayerList 微件中的显示方式。 | Layer |
loaded | Boolean | 指示图层的资源是否已加载。 | Layer |
loadError | Error | 如果加载时发生错误,则返回 Error 对象。 | Layer |
loadStatus | String | 表示 load 操作的状态。 | Layer |
loadWarnings | Object[] | 加载时发生的警告列表。 | Layer |
opacity | Number | 图层的不透明度。 | Layer |
parent | Map|Basemap|Ground|GroupLayer | 图层所属的父图层。 | Layer |
persistenceEnabled | Boolean | 当为 true 时,可以持久化图层。 | Layer |
title | String | 用于在某些地方标识它的图层标题,例如 LayerList 微件。 | Layer |
type | String | 图层类型提供了一种便捷方法来检查图层的类型,而无需导入特定的图层模块。 | Layer |
visible | Boolean | 指示图层在 View 中是否可见。 | Layer |
属性详细信息
declaredClass
declaredClass Stringreadonly
继承自:Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.7
类的名称。声明的类名称格式化为 geoscene.folder.className
。
fullExtent
图层的完整范围。默认情况下,这是全球范围的。可使用此属性设置视图的范围以匹配图层的范围,以便其要素出现在视图中。请参阅以下示例片段。
示例
js
// Once the layer loads, set the view's extent to the layer's fullextent
layer.when(function(){
view.extent = layer.fullExtent;
});
listMode
listMode String
指示图层在 LayerList 微件中的显示方式。下面列出了可能的值。
值 | 描述 |
---|---|
show | 图层在内容列表中可见。 |
hide | 图层在内容列表中隐藏。 |
hide-children | 如果图层是 GroupLayer、BuildingSceneLayer、KMLLayer、MapImageLayer、TileLayer 或 WMSLayer,则从内容列表中隐藏子图层。 |
可能值
"show"| "hide"| "hide-children"
默认值"show"
loadStatus
loadStatus Stringreadonly
表示 load 操作的状态。
值 | 描述 |
---|---|
not-loaded | 对象的资源尚未加载。 |
loading | 对象的资源当前正在加载。 |
loaded | 对象的资源已加载且未出现错误。 |
failed | 无法加载对象的资源。有关更多详情,请参阅 loadError。 |
可能值
"not-loaded"| "loading"| "failed"| "loaded"
默认值not-loaded
opacity
opacity Number
图层的不透明度。此值的范围在 1
和 0
之间,其中 0
是 100% 透明,而 1
为完全不透明。
默认值1
示例
js
// Makes the layer 50% transparent
layer.opacity = 0.5;
persistenceEnabled
persistenceEnabled Boolean
起始版本:GeoScene Maps SDK for JavaScript 4.28
当为 true
时,可以持久化图层。此属性仅对属于 WebMap 或 WebScene 规范的图层有效。
默认值false
title
title String
用于在某些地方标识它的图层标题,例如 LayerList 微件。
如果图层是从门户项目加载的,则将使用门户项目的标题。如果图层作为 webmap 或 webscene 的一部分加载,则将使用存储在 webmap/webscene 中的图层标题。
type
type Stringreadonly
图层类型提供了一种便捷方法来检查图层的类型,而无需导入特定的图层模块。
可能值
"base-dynamic"| "base-elevation"| "base-tile"| "bing-maps"| "building-scene"| "csv"| "dimension"| "elevation"| "feature"| "geojson"| "geo-rss"| "graphics"| "group"| "imagery"| "imagery-tile"| "integrated-mesh"| "integrated-mesh-3dtiles"| "kml"| "line-of-sight"| "map-image"| "map-notes"| "media"| "ogc-feature"| "oriented-imagery"| "point-cloud"| "route"| "scene"| "georeferenced-image"| "stream"| "tile"| "unknown"| "unsupported"| "vector-tile"| "wcs"| "web-tile"| "wfs"| "wms"| "wmts"| "voxel"| "subtype-group"| "knowledge-graph"| "knowledge-graph-sublayer”
visible
visible Boolean
指示图层在 View 中是否可见。当为 false
时,图层仍可能添加到视图引用的 Map 实例中,但其要素将在视图中不可见。
默认值true
示例
js
// The layer is no longer visible in the view
layer.visible = false;
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
addHandles() | 添加一个或多个与对象的生命周期相关联的句柄。 | Accessor | |
cancelLoad() | 如果 load() 操作已在进行中,则取消它。 | Layer | |
createLayerView() | Promise<LayerView> | 将图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图调用,例如 MapView 和 SceneView。 | Layer |
destroy() | 销毁图层和任何相关资源 (包括其 portalItem,如果它是图层上的属性)。 | Layer | |
emit() | Boolean | 在实例上触发事件。 | Layer |
fetchAttributionData() | Promise<Object> | 在图层可用时,获取图层的自定义属性数据。 | Layer |
fromGeoSceneServerUrl() | Promise<Layer> | 从 GeoScene Server URL 创建一个新图层实例。 | Layer |
fromPortalItem() | Promise<Layer> | 从 GeoScene Online 或 GeoScene Enterprise 门户项目创建适当图层类的新图层实例。 | Layer |
hasEventListener() | Boolean | 指示实例上是否存在与提供的事件名称相匹配的事件监听器。 | Layer |
hasHandles() | Boolean | 如果存在指定的句柄组,则返回 true。 | Accessor |
isFulfilled() | Boolean | isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。 | Layer |
isRejected() | Boolean | isRejected() 可用于验证创建类的实例是否被拒绝。 | Layer |
isResolved() | Boolean | isResolved() 可用于验证创建类的实例是否已解决。 | Layer |
load() | Promise | 加载此类引用的资源。 | Layer |
on() | Object | 在实例上注册事件处理程序。 | Layer |
removeHandles() | 移除对象拥有的句柄组。 | Accessor | |
when() | Promise | 一旦创建了类的实例,就可以利用 when()。 | Layer |
方法详细说明
addHandles
addHandles(handleOrHandles, groupKey?)
继承自:Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.25
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
js
// Manually manage handles
const handle = reactiveUtils.when(
() => !view.updating,
() => {
wkidSelect.disabled = false;
},
{ once: true }
);
this.addHandles(handle);
// Destroy the object
this.destroy();
参数
handleOrHandlesWatchHandle|WatchHandle[]
对象销毁后,标记为要移除的句柄。
groupKey*
optional
标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
createLayerView
createLayerView(view, options?){Promise<LayerView>}
将图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图调用,例如 MapView 和 SceneView。此方法在内部使用,没有直接调用它的用例。
参数
view*
父视图。
optionsObject
optional
指定附加选项的对象。有关此对象所需的属性,请参阅下面的对象规范表。
规范
signalAbortSignal
optional
中止 layerview 创建的信号。
返回
类型 | 描述 |
---|---|
Promise<LayerView> | 使用 LayerView 实例解析。 |
destroy
destroy()
起始版本:GeoScene Maps SDK for JavaScript 4.17
销毁图层和任何相关资源 (包括其 portalItem,如果它是图层上的属性)。一旦图层被破坏,则无法再使用。
被破坏的图层将从其父对象中移除,例如 Map、WebMap、WebScene、Basemap、Ground 或 GroupLayer。
另请参阅
emit
emit(type, event?){Boolean}
起始版本:GeoScene Maps SDK for JavaScript 4.5
在实例上触发事件。仅当创建此类的子类时,才应使用此方法。
参数
typeString
事件的名称。
eventObject
optional
事件有效负载。
返回
类型 | 描述 |
---|---|
Boolean | true 如果监听器收到通知,则为 |
fetchAttributionData
fetchAttributionData(){Promise<object>}
在图层可用时,获取图层的自定义属性数据。
返回
类型 | 描述 |
---|---|
Promise<Object> | 解析为包含图层自定义属性数据的对象。 |
fromGeoSceneServerUrl
fromGeoSceneServerUrl(params){Promise<Layer>}static
从 GeoScene Server URL 创建一个新图层实例。根据 URL,返回的图层类型可能是 FeatureLayer、TileLayer、MapImageLayer、ImageryLayer、ImageryTileLayer、SceneLayer、StreamLayer、IntegratedMeshLayer、IntegratedMesh3DTilesLayer、PointCloudLayer、BuildingSceneLayer、ElevationLayer 或 GroupLayer。
这在您使用各种 GeoScene Server URL 时很有用,但您不一定知道它们创建了哪些图层类型。此方法将为您创建适当的图层类型。对于要素服务或场景服务,当 URL 指向该服务并且该服务具有多个图层时,返回的 promise 将解析为 GroupLayer。
从版本 4.17 开始,可以从托管要素服务加载表。这仅适用于要素图层,如果 FeatureLayer.isTable 返回 true
,将成功加载。
下表详细说明了加载特定 URL 类型时返回的内容。
URL | 返回 |
---|---|
具有一个图层的要素服务 | FeatureLayer,其中 isTable 返回 false。 |
具有一个表的要素服务 | FeatureLayer,其中 isTable 返回 true。 |
具有多个图层/表的要素服务 | 带有图层和表的 GroupLayer。 |
类型不是“要素图层”的图层将被丢弃,例如,公共设施网络图层 | N/A |
参数
paramsObject
用于创建图层的输入参数。
规范
urlString
用于创建图层的 GeoScene Server URL
propertiesObject
optional
在此处设置任何图层的属性以构建图层实例 (例如 popupTemplate、renderer 等)。
返回
类型 | 描述 |
---|---|
Promise<Layer> | 返回解析为新 Layer 实例的 promise。 |
另请参阅
示例
js
// This snippet shows how to add a feature layer from an GeoScene Server URL
// Get an GeoScene Server URL from a custom function
const geosceneUrl = getLayerUrl();
Layer.fromGeoSceneServerUrl({
url: geosceneUrl,
properties: {
// set any layer properties here
popupTemplate: new PopupTemplate()
}
}).then(function(layer){
// add the layer to the map
map.add(layer);
});
js
// This snippet shows how to add a table from an GeoScene Server URL
// Get an GeoScene Server URL from a custom function
const geosceneUrl = getLayerUrl();
Layer.fromGeoSceneServerUrl({
url: geosceneUrl
}).then(function(layer){
// Load the table before it can be used
layer.load().then(function() {
// Check that it is the right type
if (layer.isTable) {
// Add table to map's tables collection
map.tables.add(layer);
}
});
});
fromPortalItem
fromPortalItem(params){Promise<Layer>}static
从 GeoScene Online 或 GeoScene Enterprise 门户项目创建适当图层类的新图层实例。如果项目指向具有多个图层的要素服务,则会创建 GroupLayer。如果项目指向具有单个图层的服务,则它解析为与该服务具有相同类型类的图层。
注
在 4.29 版本中,可以从门户项目加载 MediaLayer。
在 4.28 版本中,可以从门户项目加载 GroupLayer。
在 4.25 版本中,CSVLayer 和 GeoJSONLayer 可以分别从 CSV 和 GeoJSON 门户项目加载。
在 4.17 版本中,可以从 GeoScene Online 和 GeoScene Enterprise 中托管的要素服务项目加载表。这仅适用于要素图层,如果 FeatureLayer.isTable 返回
true
,将成功加载。
下表详细说明了加载特定项目类型时返回的内容。
项目 | 返回 |
---|---|
具有一个图层的要素服务 | FeatureLayer,其中 isTable 返回 false。 |
具有一个表的要素服务 | FeatureLayer,其中 isTable 返回 true。 |
具有多个图层/表的要素服务 | 带有图层和表的 GroupLayer。 |
具有一个图层的要素集合 | FeatureLayer,其中 isTable 返回 false。 |
具有一个表的要素集合 | FeatureLayer,其中 isTable 返回 true。 |
具有多个图层/表的要素集合 | 带有图层和表的 GroupLayer。 |
已知限制
- 此方法当前不适用于 OGCFeatureServer 门户项目。
参数
paramsObject
用于加载门户项目的参数。
规范
portalItemPortalItem
表示要从中加载图层的 GeoScene Online 或 GeoScene Enterprise 门户项目的对象。
返回
类型 | 描述 |
---|---|
Promise<Layer> | 返回解析为新图层实例的 promise。 |
另请参阅
示例
js
// Create a layer from a specified portal item and add to the map
Layer.fromPortalItem({
portalItem: { // autocasts new PortalItem()
id: "8444e275037549c1acab02d2626daaee"
}
}).then(function(layer){
// add the layer to the map
map.add(layer);
});
js
// Create a table from a specified portal item and add it to the map's tables collection
Layer.fromPortalItem({
portalItem: { // autocasts new PortalItem()
id: "123f4410054b43d7a0bacc1533ceb8dc" // This is a hosted table stored in a feature service
}
}).then(function(layer) {
// Necessary to load the table in order for it to be read correctly
layer.load().then(function() {
// Confirm this reads as a table
if (layer.isTable) {
// Add the new table to the map's table collection
map.tables.add(layer);
}
});
});
hasEventListener
hasEventListener(type){Boolean}
指示实例上是否存在与提供的事件名称相匹配的事件监听器。
参数
typeString
事件的名称。
返回
类型 | 描述 |
---|---|
Boolean | 如果类支持输入事件,则返回 true。 |
hasHandles
hasHandles(groupKey?){Boolean}
继承自:Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.25
如果存在指定的句柄组,则返回 true。
参数
groupKey*
optional
组键。
返回
类型 | 描述 |
---|---|
Boolean | 如果存在指定的句柄组,则返回 true 。 |
示例
js
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
obj.removeHandles("watch-view-updates");
}
isFulfilled
isFulfilled(){Boolean}
isFulfilled()
可用于验证创建类的实例是否已完成 (已解决或已拒绝)。如果满足,则返回 true
。
返回
类型 | 描述 |
---|---|
Boolean | 指示创建类的实例是否已完成 (已解决或已拒绝)。 |
isRejected
isRejected(){Boolean}
isRejected()
可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回 true
。
返回
类型 | 描述 |
---|---|
Boolean | 指示创建类的实例是否已被拒绝。 |
isResolved
isResolved(){Boolean}
isResolved()
可用于验证创建类的实例是否已解决。如果已解决,则返回 true
。
返回
类型 | 描述 |
---|---|
Boolean | 指示创建类的实例是否已解决。 |
load
load(signal?){Promise}
加载此类引用的资源。如果视图是使用地图实例构造的,则此方法会自动为 View 及其在 Map 中引用的所有资源执行。
开发人员在访问不会在 View 中加载的资源时,必须调用此方法。
load()
方法仅在第一次调用时触发资源的加载。随后的调用将返回相同的 promise。
可以提供一个 signal
来停止对 Loadable
实例加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。
参数
signalAbortSignal
optional
可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。
返回
类型 | 描述 |
---|---|
Promise | 资源已加载时解析。 |
on
on(type, listener){Object}
在实例上注册事件处理程序。调用此方法将事件与监听器挂钩。
参数
typeString|String[]
要监听的事件或事件数组。
listenerFunction
事件触发时要调用的函数。
返回
类型 | 描述 | ||||||
---|---|---|---|---|---|---|---|
Object | 返回一个具有 remove() 方法的事件处理程序,应该调用该方法以停止监听事件。
|
示例
js
view.on("click", function(event){
// event is the event handle returned after the event fires.
console.log(event.mapPoint);
});
removeHandles
removeHandles(groupKey?)
继承自:Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.25
移除对象拥有的句柄组。
参数
groupKey*
optional
要移除的组键或组键的数组或集合。
示例
js
obj.removeHandles(); // removes handles from default group
obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
when
when(callback?, errback?){Promise}
起始版本:GeoScene Maps SDK for JavaScript 4.6
一旦创建了类的实例,就可以利用 when()
。此方法接受两个输入参数:callback
函数和 errback
函数。callback
在类的实例加载时执行。errback
在类的实例无法加载时执行。
参数
callbackFunction
optional
当 promise 解决时调用的函数。
errbackFunction
optional
当 promise 失败时执行的函数。
返回
类型 | 描述 |
---|---|
Promise | 返回 callback 结果的新 promise,可用于链接其他函数。 |
示例
js
// 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
});
事件概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
layerview-create | { view: View, layerView: LayerView } | 创建图层的 LayerView 并在视图中呈现后触发。 | Layer |
layerview-create-error | { view: View, error: Error } | 将图层添加到地图后,在创建 LayerView 期间出现错误时触发。 | Layer |
layerview-destroy | { view: View, layerView: LayerView } | 销毁图层的 LayerView 并不再在视图中呈现后触发。 | Layer |
事件详细说明
layerview-create
layerview-create
创建图层的 LayerView 并在视图中呈现后触发。
属性
viewView
在其中创建 layerView
的视图。
layerViewLayerView
在表示 layer
中图层的视图中进行渲染的 LayerView。
另请参阅
示例
js
// 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-error
layerview-create-error
将图层添加到地图后,在创建 LayerView 期间出现错误时触发。
属性
viewView
为图层创建 layerview 失败触发此事件的视图。
errorError
描述图层视图创建失败原因的错误对象。
另请参阅
示例
js
// 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);
});