创建新的底图对象。底图可以从 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
}
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
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 |
属性详细信息
-
baseLayers Collection<Layer>autocast
-
构成底图要素的切片图层的集合。
-
起始版本:GeoScene Maps SDK for JavaScript 4.7
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
id String
-
用于在其他位置引用底图时所引用的标识符。
示例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
-
加载时发生的警告列表。
-
portalItem PortalItemautocast
-
门户项目。
-
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 | |
销毁底图和任何相关资源,包括其 layers 和 portalItem。 更多详情 | Basemap | ||
Basemap | 从熟知底图 ID 创建一个新的底图实例。 更多详情 | Basemap | |
* | 创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。 更多详情 | Basemap | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
Boolean |
| Basemap | |
Boolean |
| Basemap | |
Boolean |
| Basemap | |
Promise | 加载此类引用的资源。 更多详情 | Basemap | |
Promise<Basemap> | 加载与底图关联的所有外部可加载资源。 更多详情 | Basemap | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
Object | 将此类的实例转换为 GeoScene Portal JSON 表示。 更多详情 | Basemap | |
Promise | 一旦创建了类的实例,就可以使用 | 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() 操作已在进行中,则取消它。
-
destroy()起始版本:GeoScene Maps SDK for JavaScript 4.17
-
销毁底图和任何相关资源,包括其 layers 和 portalItem。一旦底图被破坏,则无法再使用这些内容。为防止这些对象被销毁,请在调用
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();
-
-
从熟知底图 ID 创建一个新的底图实例。有关可用值的列表,请参阅 Map.basemap。
参数id String底图 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 ObjectGeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。
返回类型 描述 * 返回该类的新实例。
-
起始版本: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 指示创建类的实例是否已被拒绝。
-
load(signal){Promise}
-
加载此类引用的资源。如果视图是使用地图实例构造的,则此方法会自动为 View 及其在 Map 中引用的所有资源执行。
开发人员在访问不会在 View 中加载的资源时,必须调用此方法。
load()
方法仅在第一次调用时触发资源的加载。随后的调用将返回相同的 promise。可以提供一个
signal
来停止对Loadable
实例加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。参数signal AbortSignaloptional可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为
AbortError
的错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回类型 描述 Promise 资源已加载时解析。
-
起始版本: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 Functionoptional当 promise 解决时调用的函数。
errback Functionoptional当 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 });