Basemap

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

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

// in this case the portalItem has to be a webmap
let basemap = new Basemap({
  portalItem: {
    id: "8dda0e7b5e2d4fafa80132d59122268c"  // WGS84 Streets Vector webmap
  }
});

// or create the basemap from a well known ID
Basemap.fromId("tianditu-vector");

// or create from a third party source
let basemap = new Basemap({
  baseLayers: [
    new WebTileLayer(...)
  ],
  referenceLayers: [
    new WebTileLayer(...)
  ],
});

对底图使用动态服务时,应指定 MapView.constraints.lods 属性。通过在此属性中显式设置 lods 或通过 TileInfo 类的 create() 方法创建 lods 来执行此操作。此方法用于创建具有 lods 的预设属性的新 TileInfo 实例。有关详细信息,请参阅 MapView SDK 文档中的缩放和 LODs 部分。

// create a basemap from a dynamic mapserver
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
});

// create a TileInfo instance using the default settings and
// pass its resulting LOD's to a MapView's constraints
// in this case, lods will match the GeoScene Online web mercator LODs
let view = new MapView({
  container: "viewDiv",
  map: map,
  constraints: {
    lods: TileInfo.create().lods
  }
});

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

另请参阅

构造函数

new Basemap(properties)
参数
properties Object
optional

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

属性概述

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

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

更多详情
Basemap
String

类的名称。

更多详情
Accessor
String

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

更多详情
Basemap
Boolean

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

更多详情
Basemap
Error

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

更多详情
Basemap
String

表示 load 操作的状态。

更多详情
Basemap
Object[]

加载时发生的警告列表。

更多详情
Basemap
PortalItem

门户项目。

更多详情
Basemap
Collection<Layer>

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

更多详情
Basemap
SpatialReference

底图的空间参考。

更多详情
Basemap
String

指向表示底图的图像的 URL。

更多详情
Basemap
String

底图的标题。

更多详情
Basemap

属性详细信息

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

declaredClass Stringreadonly inherited
起始版本:GeoScene Maps SDK 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

表示 load 操作的状态。

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

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

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

加载时发生的警告列表。

门户项目。

referenceLayers Collection<Layer>

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

spatialReference SpatialReferenceautocast
起始版本:GeoScene Maps SDK for JavaScript 4.14

底图的空间参考。

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

thumbnailUrl String

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

title String

底图的标题。

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor

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

更多详情
Basemap
Basemap

创建此对象的深度克隆。

更多详情
Basemap

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

更多详情
Basemap
Basemap

熟知底图 ID 创建一个新的底图实例。

更多详情
Basemap
*

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。

更多详情
Basemap
Boolean

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

更多详情
Accessor
Boolean

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

更多详情
Basemap
Boolean

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

更多详情
Basemap
Boolean

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

更多详情
Basemap
Promise

加载此类引用的资源。

更多详情
Basemap
Promise<Basemap>

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

更多详情
Basemap

移除对象拥有的句柄组。

更多详情
Accessor
Object

将此类的实例转换为 GeoScene Portal JSON 表示。

更多详情
Basemap
Promise

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

更多详情
Basemap

方法详细说明

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

cancelLoad()

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

clone(){Basemap}

创建此对象的深度克隆。

返回
类型 描述
Basemap 调用此方法的 Basemap 实例的深度克隆。
destroy()
起始版本:GeoScene Maps SDK for JavaScript 4.17

销毁底图和任何相关资源,包括其 layersportalItem。一旦底图被破坏,则无法再使用这些内容。为防止这些对象被销毁,请在调用 destroy() 之前将它们从底图中移除。

// prevent the layers from being destroyed by removing them from the basemap
const baseLayers = basemap.baseLayers.removeAll();
const referenceLayers = basemap.referenceLayers.removeAll();

// unset portalItem from the basemap so that it is not destroyed
const portalItem = basemap.portalItem;
basemap.portalItem = null;

// destroy the basemap and any remaining associated resources
basemap.destroy();
另请参阅
fromId(id){Basemap}static

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

参数

底图 ID。

返回
类型 描述
Basemap 新的 Basemap 实例。
示例
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 文档

返回
类型 描述
* 返回该类的新实例。
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}

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

返回
类型 描述
Boolean 指示创建类的实例是否已完成 (已解决或已拒绝)。
isRejected(){Boolean}

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

返回
类型 描述
Boolean 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}

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

返回
类型 描述
Boolean 指示创建类的实例是否已解决。
load(signal){Promise}

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

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

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

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

参数
optional

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

返回
类型 描述
Promise 资源已加载时解析。
loadAll(){Promise<Basemap>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

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

返回
类型 描述
Promise<Basemap> 当所有可加载资源都已加载时解析。如果至少有一个可加载资源未能加载,则拒绝。
另请参阅
示例
// Load all resources but ignore if one or more of them failed to load
basemap.loadAll()
  .catch(function(error) {
    // Ignore any failed resources
  })
  .then(function() {
    console.log("All loaded");
  });
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");
toJSON(){Object}

将此类的实例转换为 GeoScene Portal JSON 表示。有关详细信息,请参阅使用 fromJSON() 指南主题。

返回
类型 描述
Object 此类实例的 GeoScene Portal JSON 表示。
when(callback, errback){Promise}
起始版本:GeoScene Maps SDK for JavaScript 4.6

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

参数
callback Function
optional

当 promise 解决时调用的函数。

errback Function
optional

当 promise 失败时执行的函数。

返回
类型 描述
Promise 返回 callback 结果的新 promise,可用于链接其他函数。
示例
// 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
});

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