TileLayer

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

TileLayer 允许您使用由 GeoScene Server REST API 公开的缓存地图服务,并将其作为切片图层添加到地图中。缓存服务从缓存访问切片,而不是动态渲染图像。因为它们是缓存的,所以切片图层的渲染速度比 MapImageLayers 快。要创建 TileLayer 实例,您必须引用缓存地图服务的 URL。

require(["geoscene/layers/TileLayer"], function(TileLayer) {
  let layer = new TileLayer({
    url: "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"
  });
  // Add layer to map
});

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

要将非缓存地图服务显示为动态图层,请参阅 MapImageLayer

已知限制

将 TileLayer 添加到 SceneView 中的地图时,存在以下限制:

  • 此图层需要从 GeoScene Server 2.0 及更高版本发布。
  • 如果 viewingModeglobal 的,则仅支持具 GeoScene Online/Bing Maps/Google Maps (Web Mercator)、WGS84 地理坐标系或CGCS200 版本2 切片方案的服务。
  • 如果 viewingModelocal 的,则仅支持具有投影坐标系的服务。
  • 通过 API 添加图层时:只有在地图中所有其他 TileLayers 的切片大小相同时才能添加栅格 TileLayers。VectorTileLayers 可以适应 512 或 256 个切片,空地图默认选择 256 个。
  • 如果 TileLayer 是第一个添加的图层,则该图层的切片方案将锁定视图,并且切片方案之外的任何要素都不会显示。

仅支持具有以下切片方案规范的切片图层:

  • 256x256 或 512x512 像素图块
  • 比例级别必须增加或减少 2 的幂
  • 0 级时,根块不应超过 30 个。
  • 所有切片图层必须具有相同的切片方案和 SpatialReference

GeoScene 要求当您在应用程序中使用 GeoScene Online 底图时,该地图必须包含 GeoScene 属性,并且您必须获得使用该内容的许可。

另请参阅:

构造函数

new TileLayer(properties)
参数:
properties Object
可选

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

示例:
// Typical usage
let layer = new TileLayer({
  // URL points to a cached tiled map service hosted on GeoScene Server
  url: "https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"
});

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性 主题。
隐藏继承的属性 显示继承的属性
名称 类型 描述
Collection<Sublayer>更多信息

TileLayer 中所有子图层的平面集合,包括其子图层的子图层。

更多信息TileLayer
String更多信息

用于访问资源或服务的授权字符串。

更多信息TileLayer
String更多信息

指向图层属性数据位置的 URL。

更多信息TileLayer
String更多信息

混合模式用于将图层混合在一起,以在图层中创建有趣的效果,甚至产生看起来像新图层的内容。

更多信息TileLayer
Object更多信息

描述图层支持的功能。

更多信息TileLayer
String更多信息

服务定义的版权文本。

更多信息TileLayer
Object更多信息

附加到层提取的所有资源的 URL 的自定义参数列表。

更多信息TileLayer
String更多信息

类的名称。

更多信息Accessor
Effect更多信息

Effect 提供了可在图层上执行的各种滤镜要素,以实现类似于图像滤镜工作方式的不同视觉效果。

更多信息TileLayer
范围更多信息

由地图服务定义的图层的完整范围。

更多信息TileLayer
布尔值更多信息

指示图层是否具有属性数据。

更多信息TileLayer
String更多信息

分配给图层的唯一 ID。

更多信息Layer
布尔值更多信息

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

更多信息TileLayer
String更多信息

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

更多信息Layer
布尔值更多信息

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

更多信息Layer
错误更多信息

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

更多信息Layer
String更多信息

表示加载操作的状态。

更多信息Layer
Object[]更多信息

加载时发生的警告列表。

更多信息Layer
整数更多信息

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

更多信息TileLayer
整数更多信息

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

更多信息TileLayer
整数更多信息

图层不透明。

更多信息Layer
PortalItem更多信息

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

更多信息TileLayer
整数更多信息

图层的刷新间隔,以分钟为单位。

更多信息TileLayer
布尔值更多信息

在 2D MapView 和 3D SceneView 中默认启用重采样。

更多信息TileLayer
Object更多信息

GeoScene REST API 公开的切片地图服务的元数据 JSON

更多信息TileLayer
SpatialReference更多信息

由服务定义的图层的空间参考。

更多信息TileLayer
Collection<Sublayer>更多信息

子图层对象的集合

更多信息TileLayer
TileInfo更多信息

包含有关图层切片方案的信息。

更多信息TileLayer
String[]更多信息

一组用于更改地图图块的图块服务器。

更多信息TileLayer
String更多信息

图层的标题,用于在图例图层列表微件等位置中标识图层。

更多信息TileLayer
String更多信息 TileLayer 类型始终为 "tile"更多信息TileLayer
String更多信息

图层的 REST 端点的 URL。

更多信息TileLayer
整数更多信息

发布地图服务的 GeoScene Server 版本。

更多信息TileLayer
布尔值更多信息

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

更多信息Layer

属性详情

allSublayers Collection<Sublayer>readonly
起始版本:GeoScene API for JavaScript 4.9

TileLayer 中所有子图层的平面集合,包括其子图层的子图层。所有子图层都按照它们在视图中的绘制顺序(从下到上)进行引用。

示例:
// finds the census tracts sublayer from a parent sublayer of the
// TileLayer containing various census sublayers
let tractsId = 5;
let tracksSublayer = layer.allSublayers.find(function(sublayer){
  return sublayer.id === tracksId;
});
apiKey String
起始版本:GeoScene API 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"
});
attributionDataUrl Stringreadonly

指向图层属性数据位置的 URL。

blendMode String
起始版本:GeoScene API for JavaScript 4.16

混合模式用于将图层混合在一起,以在图层中创建有趣的效果,甚至产生看起来像新图层的内容。与使用透明度的方法不同,透明度会导致顶层褪色,混合模式可以通过混合图层及其下方的图层来创建各种非常生动和有趣的结果。

混合图层时,top layer 是应用了混合模式的图层。顶层下面的所有层都是 background layers。默认混合模式是 normal 的,顶层只是显示在背景图层上。虽然这种默认行为是完全可以接受的,但在图层上使用混合模式为生成创意地图开辟了无限可能的世界。

GroupLayer 中的图层与地图的其余部分隔离地混合在一起。

在以下屏幕截图中,复古阴影浮雕图层显示在萤火虫世界图像图层上。color 混合模式应用于复古阴影浮雕,结果看起来像一个新图层。

color-blend

已知限制

  • 3D SceneViews 不支持 blendMode。
  • 图例中不支持 blendMode。
  • 有关已知的打印限制,请参阅打印

以下因素会影响混合结果:

  • 所有图层的顺序
  • 图层不透明度
  • 图层中要素的不透明度
  • 图层的可见性
  • 默认情况下,地图中最底层的图层绘制在透明背景上。您可以更改 MapView 的背景色

可能值:"average"|"color-burn"|"color-dodge"|"color"|"darken"|"destination-atop"|"destination-in"|"destination-out"|"destination-over"|"difference"|"exclusion"|"hard-light"|"hue"|"invert"|"lighten"|"lighter"|"luminosity"|"minus"|"multiply"|"normal"|"overlay"|"plus"|"reflect"|"saturation"|"screen"|"soft-light"|"source-atop"|"source-in"|"source-out"|"vivid-light"|"xor"

默认值:normal
另请参阅:
capabilities Objectreadonly
起始版本:GeoScene API for JavaScript 4.8

描述图层支持的功能。

属性:
exportMap Object

表示 exportMap 操作支持的选项。如果 supportsExportMapfalse,将为 null

规范:
supportsArcadeExpressionForLabeling Boolean

指示子图层是否支持用于标注的 Arcade 表达式。仅适用于 MapImageLayer。这从 4.19 版开始可用。

supportsDynamicLayers Boolean

指示是否可以使用动态图层修改或添加子图层渲染。

supportsSublayersChanges Boolean

指示是否可以添加或删除子图层。supportsDynamicLayers 也必须为 true 才能重新排序子图层。

supportsSublayerDefinitionExpression Boolean

指示是否可以设置子图层定义表达式

supportsSublayerVisibility Boolean

指示是否可以更改子图层的可见性

supportsCIMSymbols Boolean

从 4.23 开始 指示 CIMSymbol 是否可以在子图层的渲染器中使用。

exportTiles Object

指示 exportTiles 操作支持的选项。如果 supportsExportTilesfalse,将为 null

规范:
maxExportTilesCount Number

指定可以导出到缓存数据集或切片包的最大切片数。

operations Object

表示可以对服务执行的操作。

规范:
supportsQuery Boolean

指示是否可以查询子图层中的要素。

supportsExportMap Boolean

指示服务是否可以生成图像。

supportsExportTiles Boolean

指示是否可以导出服务中的切片。

supportsTileMap Boolean

指示服务是否公开描述图块存在的图块地图。

服务定义的版权文本。

customParameters Object
起始版本:GeoScene API for JavaScript 4.18

附加到层提取的所有资源的 URL 的自定义参数列表。它是一个具有键值对的对象,其中 value 是一个字符串。

示例:
// send a custom parameter to your special service
let layer = new MapImageLayer({
  url: serviceUrl,
  customParameters: {
    "key": "my-special-key"
  }
});
declaredClass Stringreadonly inherited
起始版本:GeoScene API for JavaScript 4.7

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

起始版本:GeoScene API for JavaScript 4.18

Effect 提供了可在图层上执行的各种滤镜要素,以实现类似于图像滤镜工作方式的不同视觉效果。这种强大的功能允许您将类似 css 过滤器的功能应用于图层以创建自定义视觉效果,从而提高地图的制图质量。这是通过将所需效果作为字符串或对象数组应用于图层的 effect 属性来设置与比例相关的效果来完成的。

Notes

  • 如果需要应用满足或未通过指定过滤器的不同效果的功能,请设置 featureEffect 属性。
  • 如果应用了以下所有四个属性,则它们将按此顺序应用:featureEffect, effect, opacityblendMode

已知限制

默认值:null
另请参阅:
示例:
// the following effect will be applied to the layer at all scales
// brightness will be applied first, then hue-rotate followed by contrast
// changing order of the effects will change the final result
layer.effect = "brightness(5) hue-rotate(270deg) contrast(200%)";
// set a scale dependent bloom effect on the layer
layer.effect = [
  {
    scale: 36978595,
    value: "drop-shadow(3px, 3px, 4px)"
  },
  {
    scale: 18489297,
    value: "drop-shadow(2px, 2px, 3px)"
  },
  {
    scale: 4622324,
    value: "drop-shadow(1px, 1px, 2px)"
  }
];
fullExtent Extent

由地图服务定义的图层的完整范围。

示例:
// zooms the view to the full extent of the layer
layer.when(function(){
  view.goTo(layer.fullExtent);
});
hasAttributionData Booleanreadonly

指示图层是否具有属性数据。

分配给图层的唯一 ID。如果未由开发人员设置,则会在加载图层时自动生成。

legendEnabled Boolean

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

默认值:true
listMode String inherited

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

说明
show 该图层在内容列表中可见。
hide 图层隐藏在内容列表中。
hide-children 如果图层时 GroupLayerBuildingSceneLayerKMLLayerMapImageLayer, TileLayerWMSLayer,请从内容列表中隐藏子图层。

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

默认值:show
loaded Booleanreadonly inherited

指示图层的资源是否已加载。当 true 时,可以访问对象的所有属性。

默认值:false
loadError Errorreadonly inherited

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

默认值:null
loadStatus Stringreadonly inherited

表示加载操作的状态。

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

可能值:"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;
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 lyr = 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 lyr = new FeatureLayer({
  portalItem: {  // autocasts as new PortalItem()
    id: "8d26f04f31f642b6828b7023b84c2188"
  },
  // loads the third item in the given feature service
  layerId: 2
});
// 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);
  }
});
refreshInterval Number
起始版本:GeoScene API for JavaScript 4.6

图层的刷新间隔,以分钟为单位。值为 0 表示不刷新。

默认值:0
另请参阅:
示例:
// the layer will be refreshed every 6 seconds.
layer.refreshInterval = 0.1;
resampling Boolean
起始版本:GeoScene API for JavaScript 4.11

在 2D MapView 和 3D SceneView 中默认启用重采样。这意味着切片图像会以较低的细节级别重新采样,并显示在切片可能不可用的级别。将此属性设置为 false 将禁用此行为。相反,如果切片不可用,则会显示透明图像。

默认值:true
sourceJSON Object
起始版本:GeoScene API for JavaScript 4.13

GeoScene REST API 公开的地图服务的元数据 JSON。虽然最常用的属性直接 TileLayer 类上公开,但此属性允许访问切片地图服务返回的所有信息。如果在使用较旧版本的 API 构建的应用程序中工作,该应用程序需要从较新版本访问切片地图服务属性,则此属性非常有用。

spatialReference SpatialReferencereadonly

由服务定义的图层的空间参考。

sublayers Collection<Sublayer>readonly
起始版本:GeoScene API for JavaScript 4.9

子图层对象的集合。所有子图层都按照它们在视图中的绘制顺序(从下到上)进行引用。TileLayer 上的子图层属性是只读的,但以下情况除外:

tileInfo TileInfo

包含有关图层切片方案的信息。

tileServers String[]

一组用于更改地图图块的图块服务器。

title String

图层的标题,用于在图例图层列表微件等位置中标识图层。

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

type Stringreadonly

对于 TileLayer 类型始终为 "tile"

url String

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

示例:
// URL points to a cached tiled map service hosted on GeoScene Server
let layer = new TileLayer({
 url: "https://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer"
});
version Numberreadonly

发布地图服务的 GeoScene Server 版本。

示例:
// Prints the version number to the console, e.g. 2.1, 3.0, 3.1.
console.log(layer.version);

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

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

方法概述

隐藏继承方法 显示继承方法
名称 返回类型 描述
更多信息

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

更多信息Layer
Promise<LayerView>更多信息

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

更多信息Layer
Collection<Sublayer>更多信息

返回服务定义的地图服务子图层的深层克隆。

更多信息TileLayer
更多信息

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

更多信息Layer
布尔值更多信息

在实例上发出事件。

更多信息Layer
Promise<Object>更多信息

在图层可用时提取图层的自定义归因数据。

更多信息Layer
Promise<HTMLImageElement>更多信息

此方法获取视图中存在的给定级别、行和列的图块。

更多信息TileLayer
Sublayer更多信息

返回具有给定 layerId 的子图层。

更多信息TileLayer
String更多信息

此方法返回给定级别、行和列的切片的 URL。

更多信息TileLayer
布尔值更多信息

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

更多信息Layer
布尔值更多信息

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

更多信息Layer
布尔值更多信息

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

更多信息Layer
布尔值更多信息

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

更多信息Layer
Promise更多信息

加载此类引用的资源。

更多信息Layer
Object更多信息

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

更多信息Layer
更多信息

获取图层的所有数据。

更多信息TileLayer
Promise更多信息

when() 可以在创建类的实例后利用。

更多信息Layer

方法详情

cancelLoad()inherited

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

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

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

参数:
view *

父视图。

options Object
可选

指定其他选项的对象。有关此对象的必需属性,请参阅下面的对象规范表。

规范:
可选

中止层视图创建的信号。

返回:
类型 说明
Promise<LayerView> 使用 LayerView 实例进行解析。
另请参阅:
createServiceSublayers(){Collection<Sublayer>}

返回服务定义的地图服务子图层的深层克隆。这对于开发人员不熟悉服务子图层并需要“重置”层的子图层以匹配服务定义的子图层的情况很有用。

返回:
类型 说明
Collection<Sublayer> 由地图服务定义的子图层的集合。
示例:
Layer.fromPortalItem({
  portalItem: {
    portalId: "dbb9b48477444015912061b182f196b9"
  }
}).then(function(layer){
  let serviceSublayers = layer.createServiceSublayers();
  layer.sublayers = serviceSublayers;
});
destroy()inherited
起始版本:GeoScene API for JavaScript 4.17

销毁图层和任何关联的资源(包括其 portalItem,如果它是图层上的属性)。该图层一旦被破坏就不能再使用了。

被破坏的图层将从其父对象(如 MapWebMapWebSceneBasemapGroundGroupLayer)中移除。

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

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

参数:
type String

事件的名称。

event Object
可选

事件负载。

返回:
类型 说明
布尔值 true 如果通知了侦听器
fetchAttributionData(){Promise<Object>}inherited

在图层可用时提取图层的自定义归因数据。

返回:
类型 说明
Promise<Object> 解析为包含图层自定义属性数据的对象。
fetchTile(level, row, col, options){Promise<HTMLImageElement>}

此方法获取视图中存在的给定级别、行和列的图块。

参数:
level Number

要获取的图块的详细程度。该值由 LayerView 提供。

row Number

切片提取的行(y)位置。该值由 LayerView 提供。

col Number

要获取的图块的 column(x) 位置。该值由 LayerView 提供。

options Object
可选

切片请求的可选设置。这些选项具有以下属性。

规范:
可选

AbortSignal 允许可取消的请求。如果取消,promise 将被拒绝并出现名为 AbortError 的错误。另请参阅 AbortController

返回:
类型 说明
Promise<HTMLImageElement> 返回解析为 HTMLImageElement 的承诺。
findSublayerById(id){Sublayer}

返回具有给定 layerId 的子图层。

参数:

子图层的 id

返回:
类型 说明
Sublayer 返回给定层 ID 的子图层。
示例:
// returns the sublayer with a layerId of 0
let sublayer0 = layer.findSublayerById(0);
getTileUrl(level, row, col){String}

此方法返回给定级别、行和列的切片的 URL。

参数:
level Number

请求切片级别。

row Number

请求切片行。

col Number

请求切片列。

返回:
类型 说明
字符串 返回切片 URL。
hasEventListener(type){Boolean}inherited

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

参数:
type String

事件的名称。

返回:
类型 说明
布尔值 如果类支持输入事件,则返回 true。
isFulfilled(){Boolean}inherited

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

返回:
类型 说明
布尔值 指示创建类的实例是否已完成(已解决或已拒绝)。
isRejected(){Boolean}inherited

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

返回:
类型 说明
布尔值 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}inherited

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

返回:
类型 说明
布尔值 指示创建类的实例是否已解决。
load(signal){Promise}inherited

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

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

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

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

参数:
可选

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

返回:
类型 说明
Promise 资源已加载时解析。
on(type, listener){Object}inherited

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

参数:

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

listener Function

事件触发时调用的函数。

返回:
类型 说明
Object 返回带有 remove() 方法的事件处理程序,应调用该方法以停止侦听事件。
属性 类型 说明
remove 函数 调用时,从事件中删除侦听器。
示例:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});
refresh()
起始版本:GeoScene API for JavaScript 4.6

获取图层的所有数据。

另请参阅:
when(callback, errback){Promise}inherited
起始版本:GeoScene API for JavaScript 4.6

when() 可以在创建类的实例后利用。这个方法有两个输入参数:一个 callback 函数和一个 errback 函数。callback 在类的实例加载时执行。errback 在类的实例无法加载时执行。

参数:
callback Function
可选

当 promise 解决时调用的函数。

errback Function
可选

当 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
{dataChanged: Boolean}
更多信息

如果图层设置了 refreshInterval 或调用 refresh() 方法时触发。

更多信息 TileLayer

事件详述

layerview-createinherited

在视图中创建并渲染图层的 LayerView 后激发。

属性:
view View

创建 layerView 的视图。

layerView LayerView

在视图中呈现的 LayerView 表示 layer 中的图层。

另请参阅:
示例:
// 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

未能为发出此事件的图层创建层视图的视图。

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。

refresh
起始版本:GeoScene API for JavaScript 4.21

如果图层设置了 refreshInterval 或调用 refresh() 方法时触发。事件有效负载指示图层的数据是否已更改。

属性:
dataChanged Boolean

指示图层的数据是否已更改。

另请参阅:
示例:
// listen to layer's refresh event to fetch the attachments
// for the updated features.
layer.on("refresh", function(event){
  if (event.dataChanged){
    const query = layer.createQuery();
    layer.queryObjectIds(query).then(function (objectIds) {
      let attachmentQuery = {
        objectIds: objectIds,
        definitionExpression: layer.definitionExpression,
        attachmentTypes: ["image/jpeg"]
      };
      layer.queryAttachments(attachmentQuery).then(function (attachments) {
        attachmentQuery.objectIds.forEach(function (objectId) {
          if (attachments[objectId]) {
            // process the updated attachments
            let attachment = attachments[objectId];
          }
        });
      })
      .catch(function (error) {
        console.log("attachment query error", error);
      });
    });
  }
});

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.