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

子类:BaseDynamicLayerBaseElevationLayerBaseTileLayerBuildingSceneLayerCSVLayerDimensionLayerElevationLayerFeatureLayerGeoJSONLayerGeoRSSLayerGraphicsLayerGroupLayerImageryLayerImageryTileLayerIntegratedMesh3DTilesLayerIntegratedMeshLayerKMLLayerKnowledgeGraphLayerKnowledgeGraphSublayerLineOfSightLayerMapImageLayerMapNotesLayerMediaLayerOGCFeatureLayerOrientedImageryLayerPointCloudLayerRouteLayerSceneLayerStreamLayerSubtypeGroupLayerTileLayerUnknownLayerUnsupportedLayerVectorTileLayerVoxelLayerWCSLayerWFSLayerWMSLayerWMTSLayerWebTileLayer

起始版本:GeoScene Maps SDK for JavaScript 4.0

图层是地图最基本的组成部分。它是代表现实世界现象的矢量图形、栅格影像或 3D 对象形式的空间数据集合。图层可能包含存储矢量数据的离散要素或存储栅格数据的连续像元/像素。

对于基于矢量的图层,例如 FeatureLayerGraphicsLayer,图层中包含的每个要素都有一个几何,允许在视图中将其渲染为具有空间上下文的图形。图层中的要素还包含提供附加信息的数据属性,这些信息可以在弹出窗口中查看并用于渲染图层。

要创建图层,您必须使用 Layer 的子类之一或调用 Layer.fromPortalItem() 方法。图层的一些示例包括:

  • 道路和高速公路可以使用 FeatureLayer 中的线性要素来表示

  • 宗地地块可以在 MapImageLayer 中显示为多边形

  • 卫星影像可以在 TileLayer 中显示为切片影像

为了进行可视化和分析,可以将多个图层添加到同一地图中,并相互叠加。有关如何向地图添加图层的其他信息,请参阅地图。图层在具有 LayerViewView 中进行渲染。

从广义上讲,图层可用于以下目的:

  • 显示地理环境的位置

  • 查询数据

  • 显示分类和/或数值数据

  • 分析

所有图层类型都继承自 Layer。要了解每种图层类型的详细信息,并比较和对比其数据源和功能,请参阅下表。

用于查询、可视化、分析数据的图层

图层类型数据源数据类型要素局限性
FeatureLayerGeoScene FeatureServer/MapServer、GeoScene 门户项目或客户端图形作为矢量图形下载的点、折线、多边形客户端处理、弹出模板、带有 2D 和 3D 符号的渲染器、查询、编辑 (在未来版本中)显示的要素数量有限;可能需要大量下载,具体取决于要素数量
GraphicsLayer客户端图形显示为矢量图形的点、折线、多边形没有几何方案。点、折线和多边形可以存储在单个图层中。没有渲染器或弹出模板;可视化和弹出模板是按逐个图形处理的。
MapImageLayerGeoScene MapServer、GeoScene 门户项目在单个影像中导出的点、折线、多边形、栅格可能包含嵌套的子图层。渲染器、弹出窗口模板、不透明度和标注的服务器端处理,用于快速显示许多要素。可用于显示、查询和联接已注册工作空间中的数据不支持编辑
SceneLayerGeoScene SceneServer、GeoScene 门户项目点和多面体几何可以在客户端上显示大量要素。非常适合渲染 3D 要素不支持 2D;通过关联的要素图层进行编辑
CSVLayerCSV 文件作为矢量图形下载的点客户端处理、弹出模板、带有 2D 和 3D 符号的渲染器可能需要大量下载,具体取决于要素的数量
KMLLayerKML 文件 (.kml、.kmz),GeoScene 门户项目显示为矢量图形的点、折线、多边形在地图或 webmap 中显示 KML 文件不支持 3D;需要从 geosceneonline.cn 或 GeoScene Enterprise 访问实用程序服务
StreamLayerGeoScene StreamServer作为矢量图形下载的点实时下载和更新要素位置N/A
ImageryLayerGeoScene ImageServer、GeoScene 门户项目导出为单个影像的栅格数据客户端和服务器端像素过滤和渲染;弹出模板;查询N/A
ImageryTileLayerGeoScene ImageServer、GeoScene 门户项目导出为单个影像的栅格数据客户端渲染;弹出模板N/A
GeoJSONLayerGeoJSON点、折线、多边形渲染器、标注、编辑、弹出窗口数据必须符合 RFC 7946 规范,其声明坐标采用 SpatialReference WGS84
OGCFeatureLayerOGC API - 要素点、折线、多边形渲染器、标注、弹出窗口数据必须符合 RFC 7946 规范,其声明坐标采用 SpatialReference WGS84
GeoRSSLayerGeoRSS 源点、折线、多边形无几何方案;弹出模板不支持 3D;不支持渲染器
DimensionLayerGeoScene WebSceneDimensionAnalysis客户端长度尺寸不支持 2D
LineOfSightLayerGeoScene WebSceneLineOfSightAnalysis视线分析的观察者和目标不支持 2D
MapNotesLayerGeoScene WebMap、GeoScene 门户项目点、折线、多边形、文本Webmap 中的地图注释不支持 3D;只读
WCSLayerWCS 服务导出为单个影像的栅格数据OGC 规范N/A
WFSLayerWFS 服务,GeoScene 门户项目点、多点、线、多边形OGC 规范数据必须为 GeoJSON 格式,仅支持版本 2.0.0
WMSLayerWMS 服务、GeoScene 门户项目导出为单个影像的数据OGC 规范N/A
BaseDynamicLayerGeoScene MapServer、WMS 服务导出为单个影像的数据可对此类进行扩展,以创建一个动态地图图层不支持 3D;导出的影像无法在浏览器中缓存
BuildingSceneLayerGeoScene SceneServer、GeoScene 门户项目数据在 BuildingGroupSublayers 中进行组织,其中包含 BuildingComponentSublayers可视化建筑物的复杂数字模型并与其组件进行交互不支持 2D
SubtypeGroupLayerGeoScene FeatureServer/MapServer、GeoScene 门户项目作为矢量图形下载的点、折线、多边形包含要素服务中每个子类型的子图层;每个子图层都可使用自己的渲染器、弹出窗口和标注进行单独配置不支持 3D;在子图层级别没有编辑支持
KnowledgeGraphLayerGeoScene KnowledgeGraphService数据分为空间子图层和非空间子图层。空间子图层包含点、多点、线和面为图层中的每个命名类型包含一个子图层;可以查询每个子图层;空间子图层可以使用其自己的渲染器、弹出窗口和标注进行单独配置只能添加到 Map 实例。不是门户项目,无法添加到 WebMap 或 MapViewer。需要 GeoScene Enterprise 4.1

用于提供地理环境的图层

图层类型数据源数据类型要素局限性
TileLayerGeoScene MapServer、GeoScene 门户项目影像切片大型数据集的性能更好;查询要素无编辑,客户端渲染或弹出模板;3D 视图中的一些方案限制。
BaseTileLayerGeoScene MapServer、GeoScene 门户项目影像切片可以扩展此类以创建自定义切片图层无编辑,客户端渲染或弹出模板;3D 视图中的一些方案限制。
VectorTileLayerGeoScene 门户项目渲染为矢量切片的点、折线和面要素可在客户端设置样式并用作切片底图无编辑、客户端渲染或弹出模板。
IntegratedMeshLayerIntegratedMesh3DTilesLayerGeoScene SceneServer、GeoScene 门户项目具有纹理的三角网格显示具有高细节的 3D 对象不支持 2D
VoxelLayerGeoScene SceneServer、GeoScene 门户项目多维体素立方体显示多维体积现象 (例如,地下模型)不支持 2D
ElevationLayerGeoScene ImageServer、GeoScene 门户项目切片高程网格/表面在 3D 视图中渲染高程表面不支持 2D
BaseElevationLayerGeoScene ImageServer、GeoScene 门户项目切片高程网格/表面可以扩展此类以创建自定义高程图层不支持 2D
PointCloudLayerGeoScene SceneServer、GeoScene 门户项目点云 (例如,从 LiDAR 收集)渲染器;点云的快速显示不支持 2D
OpenStreetMapLayerOpenStreetMap 切片服务影像切片显示 OpenStreetMap 切片内容N/A
WMTSLayerWMTS tile 服务、GeoScene 门户项目影像切片OGC 规范N/A
WebTileLayer非 GeoScene、非 OGC 和非 OSM 切片服务影像切片N/A无编辑、客户端渲染或弹出模板。
BingMapsLayerBing 空间数据服务数据影像切片显示 Microsoft 的 Bing 切片内容需要 Bing 地图密钥;支持三种地图样式:road、aerial 和 hybrid
MediaLayerHTMLVideoElement、HTMLImageElement 或 HTMLCanvasElement图像/视频元素在地图上的指定地理位置处显示图像和视频元素目前不支持 GIF/APNG

其他图层

图层类型数据源数据类型要素局限性
GroupLayer其他图层类型的任意组合N/A将两个或多个图层合并为一个图层N/A

属性概述

所有属性都可以设置、获取和监听。请参阅使用属性主题。

名称类型描述
declaredClassString类的名称。Accessor
fullExtentExtent图层的完整范围。Layer
idString分配给图层的唯一 ID。Layer
listModeString指示图层在 LayerList 微件中的显示方式。Layer
loadedBoolean指示图层的资源是否已加载。Layer
loadErrorError如果加载时发生错误,则返回 Error 对象。Layer
loadStatusString表示 load 操作的状态。Layer
loadWarningsObject[]加载时发生的警告列表。Layer
opacityNumber图层的不透明度。Layer
parentMap|Basemap|Ground|GroupLayer图层所属的父图层。Layer
persistenceEnabledBoolean当为 true 时,可以持久化图层。Layer
titleString用于在某些地方标识它的图层标题,例如 LayerList 微件。Layer
typeString图层类型提供了一种便捷方法来检查图层的类型,而无需导入特定的图层模块。Layer
visibleBoolean指示图层在 View 中是否可见。Layer

属性详细信息

declaredClass

declaredClass Stringreadonly

继承自:Accessor

起始版本:GeoScene Maps SDK for JavaScript 4.7

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

fullExtent

fullExtent Extentautocast

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

示例

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

id

id String

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

listMode

listMode String

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

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

可能值

"show"| "hide"| "hide-children"

默认值"show"

loaded

loaded Booleanreadonly

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

默认值false

loadError

loadError Errorreadonly

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

默认值null

loadStatus

loadStatus Stringreadonly

表示 load 操作的状态。

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

可能值

"not-loaded"| "loading"| "failed"| "loaded"

默认值not-loaded

loadWarnings

loadWarnings Object[]readonly

加载时发生的警告列表。

opacity

opacity Number

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

默认值1

示例

js
// Makes the layer 50% transparent
layer.opacity = 0.5;

parent

parent Map|Basemap|Ground|GroupLayer

起始版本:GeoScene Maps SDK for JavaScript 4.27

图层所属的父图层。

persistenceEnabled

persistenceEnabled Boolean

起始版本:GeoScene Maps SDK for JavaScript 4.28

当为 true 时,可以持久化图层。此属性仅对属于 WebMapWebScene 规范的图层有效。

默认值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 集合并且必须为其创建图层视图时,由视图调用,例如 MapViewSceneViewLayer
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()BooleanisFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。Layer
isRejected()BooleanisRejected() 可用于验证创建类的实例是否被拒绝。Layer
isResolved()BooleanisResolved() 可用于验证创建类的实例是否已解决。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() 进行删除。如果未提供键,则句柄将被添加到默认组。

cancelLoad

cancelLoad()

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

createLayerView

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

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

参数

view*

父视图。

optionsObject

optional

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

规范

signalAbortSignal

optional

中止 layerview 创建的信号。

返回

类型描述
Promise<LayerView>使用 LayerView 实例解析。

destroy

destroy()

起始版本:GeoScene Maps SDK for JavaScript 4.17

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

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

另请参阅

emit

emit(type, event?){Boolean}

起始版本:GeoScene Maps SDK for JavaScript 4.5

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

参数

typeString

事件的名称。

eventObject

optional

事件有效负载。

返回

类型描述
Booleantrue 如果监听器收到通知,则为

fetchAttributionData

fetchAttributionData(){Promise<object>}

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

返回

类型描述
Promise<Object>解析为包含图层自定义属性数据的对象。

fromGeoSceneServerUrl

fromGeoSceneServerUrl(params){Promise<Layer>}static

从 GeoScene Server URL 创建一个新图层实例。根据 URL,返回的图层类型可能是 FeatureLayerTileLayerMapImageLayerImageryLayerImageryTileLayerSceneLayerStreamLayerIntegratedMeshLayerIntegratedMesh3DTilesLayerPointCloudLayerBuildingSceneLayerElevationLayerGroupLayer

这在您使用各种 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 版本中,CSVLayerGeoJSONLayer 可以分别从 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() 方法的事件处理程序,应该调用该方法以停止监听事件。
属性类型描述
removeFunction当调用时,将从事件中移除该监听器。

示例

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

layerview-destroy

layerview-destroy

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

属性

viewView

在其中销毁 layerView 的视图。

layerViewLayerView

被销毁的表示图层的 LayerView。