Basemap

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

创建新的底图对象。底图可以从 PortalItem、从已知底图 ID 创建,也可用自定义底图创建。这些底图可以通过发布到自己的服务器的切片服务或第三方发布的切片服务创建。

// 创建底图时,portalItem 必须是 webmap类型item
let basemap = new Basemap({
  portalItem: {
    id: "f80a41db443145159388dc8db080e89e"  // WGS84 街道矢量 webmap
  }
});

// 或从熟知的 ID 创建底图。 
Basemap.fromId("tianditu-vector");

// 或从第三方来源创建 
let basemap = new Basemap({
  baseLayers: [
    new WebTileLayer(...)
  ],
  referenceLayers: [
    new WebTileLayer(...)
  ],
});

对底图使用动态服务时,应指定 MapView.constraints.lods 属性。可以直接设置 lods ,也可以通过 TileInfo 类的 create() 方法创建 lods 。定义一个新 TileInfo 实例,将其lods属性赋予MapView.constraints.lods。有关详细信息,请参阅 MapViewSDK 文档中的 缩放和 LODs 部分。

// 从动态地图服务创建图层
let basemap = new Basemap({
  baseLayers: [
    new MapImageLayer({
      url: "url to your dynamic MapServer",
      title: "Basemap"
    })
  ],
  title: "basemap",
  id: "basemap"
});

let map = new Map({
  basemap: basemap
});

// 使用默认设置创建TileInfo实例
// 并将其结果LOD传递给地图视图的约束
let view = new MapView({
  container: "viewDiv",
  map: map,
  constraints: {
    lods: TileInfo.create().lods
  }
});

可以调用底图实例上的 when() 方法来执行在 已加载 门户后需要运行的进程。

另请参阅:

构造函数

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

有关可能传递到构造函数中的所有属性的列表,请参阅属性

属性概述

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

构成底图要素的切片图层的集合。

更多信息Basemap
String更多信息

类的名称。

更多信息Accessor
String更多信息

底图的标识符,用于在其他位置引用底图时使用。

更多信息Basemap
布尔值更多信息

指示底图实例是否已加载。

更多信息Basemap
Error更多信息

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

更多信息Basemap
String更多信息

表示加载操作的状态。

更多信息Basemap
object[]更多信息

加载时发生的警告列表。

更多信息Basemap
PortalItem更多信息

门户项目。

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

切片参考图层的集合,用于显示标注。

更多信息Basemap
SpatialReference更多信息

底图的空间参考。

更多信息Basemap
String更多信息

底图缩略图的 URL。

更多信息Basemap
String更多信息

底图的标题。

更多信息Basemap

属性详情

构成底图的切片图层集合。

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

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

底图的标识符,用于在其他位置引用底图时引用。

示例:
let customBasemap = new Basemap({
  baseLayers: [layers],
  title: "Custom Basemap",
  id: "myBasemap"
});
loaded Booleanreadonly

指示底图实例是否已加载。如果为 true,则可以访问对象的所有属性。

默认值:false
loadError Errorreadonly

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

默认值:null
loadStatus Stringreadonly

表示加载操作的状态。

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

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

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

加载时发生的警告列表。

门户项目。

referenceLayers Collection<Layer>

用于显示标注的切片参考图层集合。

spatialReference SpatialReferenceautocast
起始版本:GeoScene API for JavaScript 4.14

底图的空间参考。有关支持的坐标系的完整列表,请参阅 使用空间参考

使用 Geoscene 底图时,默认空间参考是 Web Mercator Auxiliary Sphere

thumbnailUrl String

底图缩略图 URL。在 BasemapToggle 微件中使用自定义底图时,此处指定的图片将显示在微件中。当用户单击图片时,地图的底图将更新为与图片关联的底图。

另请参阅:
title String

底图的标题。

方法概述

名称 返回类型 描述
更多信息

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

更多信息Basemap
Basemap更多信息

创建此对象的深度克隆。

更多信息Basemap
更多信息

销毁底图和任何相关资源,包括其图层portalItem

更多信息Basemap
Basemap更多信息

众所周知底图 ID创建一个新的底图实例。

更多信息Basemap
*更多信息

使用json创建此类的新实例,需传入 Geoscene 产品生成的 JSON 对象。

更多信息Basemap
布尔值更多信息

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

更多信息Basemap
布尔值更多信息

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

更多信息Basemap
布尔值更多信息

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

更多信息Basemap
Promise更多信息

加载此类引用的资源。

更多信息Basemap
Promise<Basemap>更多信息

加载与底图关联的所有外部可加载资源。

更多信息Basemap
Object更多信息

将此类的实例转换为其 GeoScene portal JSON 形式。

更多信息Basemap
Promise更多信息

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

更多信息Basemap

方法详情

cancelLoad()

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

clone(){Basemap}

创建此对象的深度克隆。

返回:
类型 说明
底图 调用此方法的 Basemap 实例的深层克隆。
destroy()
起始版本:GeoScene API for JavaScript 4.17

销毁底图和任何相关资源,包括其图层portalItem。一旦底图被破坏,这些就不能再使用了。为防止这些对象被销毁,请在调用 destroy() 之前将它们从底图中移除。

// 通过从底图中删除图层来防止图层被破坏
const baseLayers = basemap.baseLayers.removeAll();
const referenceLayers = basemap.referenceLayers.removeAll();

// 从底图中取消 portalItem 使其不会被破坏
const portalItem = basemap.portalItem;
basemap.portalItem = null;

// 销毁底图和任何剩余的相关资源
basemap.destroy();
另请参阅:
fromId(id){Basemap}static

众所周知底图 ID 创建一个新的底图实例。有关可能值的列表,请参阅 Map.basemap

参数:

底图 ID。

返回:
类型 说明
底图 新的底图实例。
示例:
let streetsBasemap = Basemap.fromId("tianditu-vector");
let nightBasemap = Basemap.fromId("geoscene-blue");
fromJSON(json){*}static

创建此类的新实例,并使用从 Geoscene 产品生成的 JSON 对象中的值对其进行初始化。输入的 json 对象通常来自对 REST API 中的查询结果或来自另一个 GeoScene 产品的 toJSON() 方法。请参阅指南中的 fromJSON() 主题,了解有关何时以及如何使用此功能的详细信息。

参数:
json Object

GeoScene 格式的实例的 JSON 表示形式。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。

返回:
类型 说明
* 返回此类的新实例。
isFulfilled(){Boolean}

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

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

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

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

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

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

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

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

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

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

参数:
可选

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

返回:
类型 说明
Promise 资源已加载时解析
loadAll(){Promise<Basemap>}
起始版本:GeoScene API for JavaScript 4.9

加载与底图关联的所有外部可加载资源。对于底图,这将加载所有基础图层和参考图层。

返回:
类型 说明
Promise<Basemap> 当所有可加载资源都已加载时解析。如果至少有一个可加载资源未能加载,则拒绝。
另请参阅:
示例:
// 加载所有资源,但如果其中一个或多个未能加载则忽略
basemap.loadAll()
  .catch(function(error) {
    // 加载所有资源,但如果其中一个或多个未能加载则忽略
  })
  .then(function() {
    console.log("All loaded");
  });
toJSON(){Object}

将此类的实例转换为其 GeoScene portal JSON 表现形式。有关更多信息,请参阅 fromJSON() 主题。

返回:
类型 说明
Object 此类实例的 GeoScene portal JSON 形式。
when(callback, errback){Promise}
起始版本:GeoScene API for JavaScript 4.6

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

参数:
callback Function
可选

当 promise 解决时调用的函数。

errback Function
可选

当 promise 失败时执行的函数。

返回:
类型 说明
Promise 返回 callback 结果的新承诺,可用于链接其他函数。
示例:
// 尽管此示例使用 MapView,但任何作为 Promise 的类实例都可以以相同的方式使用 when() 
let view = new MapView(); view.when(function(){ // 一旦 promise 被解决,这个函数就会执行
}, function(error){ // 如果 promise 由于错误而被拒绝,此函数将执行
});

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