Ground

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

Ground 类包含指定如何在 SceneView 中显示地表面的属性。它包含一个 layers 属性,该属性是 ElevationLayer 的集合,用于定义地图表面的高程或地形。

Map 实例上,可以使用世界高程服务方便地通过地面属性初始化默认地面:

let map = new Map({
  basemap: "tianditu-vector",
  ground: "world-elevation"
});

当需要地形和测深值时,可以使用 TopoBathy 3D 服务

let map = new Map({
  basemap: "tianditu-vector",
  ground: "world-topobathymetry"
});

当底图不可用时,默认情况下,地面将显示格网:

ground-grid

可以通过在 surfaceColor 属性上设置颜色来更改该属性:

map.ground.surfaceColor = '#004C73';

ground-color

如果场景包含地下数据,可降低地面的不透明度,以便能够透过地面看到:

map.ground.opacity = 0.4;

underground-global

另请参阅

构造函数

new Ground(properties)
参数
properties Object
optional

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

属性概述

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

类的名称。

更多详情
Accessor
Collection<ElevationLayer>

ElevationLayers 的集合,用于定义构成地表的高程或地形。

更多详情
Ground
Boolean

指示实例是否已加载。

更多详情
Ground
Error

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

更多详情
Ground
String

表示 load 操作的状态。

更多详情
Ground
Object[]

加载时发生的警告列表。

更多详情
Ground
Accessor

指定相对于地表的用户导航约束。

更多详情
Ground
Number

地面的不透明度,包括表面默认颜色和底图 (不含参考图层)。

更多详情
Ground
Color

地表的颜色,显示在底图下方。

更多详情
Ground

属性详细信息

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

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

ElevationLayers 的集合,用于定义构成地表的高程或地形。将高程图层添加到地面时,表面的地形变化将以 3D 形式渲染,就像它们在现实世界中一样。

elev-default

当图层集合为空时,地表是平坦的。

no-elev

示例
// Adds the world elevation service to the ground
let layer = new ElevationLayer({
  url: "//links.geoscene.cn/elevation3d/rest/services/WorldElevation3D/Terrain3D/ImageServer"
});
map.ground.layers.add(layer);
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

加载时发生的警告列表。

起始版本:GeoScene Maps SDK for JavaScript 4.8

指定相对于地表的用户导航约束。

属性
type String

约束的类型。它可以是以下值之一:

描述
stay-above 用户只能在地表上导航
none 用户可以在地表上方和下方导航

默认值:stay-above

可能值"stay-above"|"none"

opacity Number
起始版本:GeoScene Maps SDK for JavaScript 4.8

地面的不透明度,包括表面默认颜色和底图 (不含参考图层)。此属性可用于透视地面效果。

默认值:1
surfaceColor Colorautocast
自动转换自 Object|Number[]|String
起始版本:GeoScene Maps SDK for JavaScript 4.8

地表的颜色,显示在底图下方。如果此值为 null,则改为显示一个网格。颜色中的 Alpha 值将被忽略。使用 opacity 属性可以控制地面的不透明度。

默认值:null

方法概述

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

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

更多详情
Accessor

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

更多详情
Ground
Ground

创建此对象的深度克隆。

更多详情
Ground
Promise<ElevationSampler>

通过查询地面图层的高程数据并对其进行缓存,从而为给定范围创建高程采样器,以便之后可以快速采样值。

更多详情
Ground

损坏地面及其图层

更多详情
Ground
*

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

更多详情
Ground
Boolean

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

更多详情
Accessor
Boolean

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

更多详情
Ground
Boolean

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

更多详情
Ground
Boolean

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

更多详情
Ground
Promise

加载此类引用的资源。

更多详情
Ground
Promise<Ground>

加载与地面关联的所有外部可加载资源。

更多详情
Ground
Promise<ElevationQueryResult>

在地面图层服务中查询给定几何的高程值。

更多详情
Ground

移除对象拥有的句柄组。

更多详情
Accessor
Object

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

更多详情
Ground
Promise

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

更多详情
Ground

方法详细说明

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(){Ground}

创建此对象的深度克隆。

返回
类型 描述
Ground 调用此方法的 Ground 实例的深度克隆。
createElevationSampler(extent, options){Promise<ElevationSampler>}
起始版本:GeoScene Maps SDK for JavaScript 4.7

通过查询地面图层的高程数据并对其进行缓存,从而为给定范围创建高程采样器,以便之后可以快速采样值。采样器使用具有可用数据的第一个图层中的高程数据。要从特定图层获取高程数据,请使用 ElevationLayer.createElevationSampler()

参数
规范
extent Extent

创建采样器的范围。

options Object
optional

其他采样器选项。

规范
demResolution Number|String
optional
默认值:auto

控制采样高程数据的水平分辨率 (单元尺寸),以米为单位 (默认为 auto)。有关不同设置的更多详细信息,请参见下表

noDataValue Number
optional
默认值:0

没有可用数据时使用的值。

optional

中止请求的 AbortSignal。如果取消,则 promise 将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<ElevationSampler> 高程采样器。
destroy()
起始版本:GeoScene Maps SDK for JavaScript 4.17

损坏地面及其图层。一旦地面损坏,则无法再使用这些内容。为防止图层被损坏,请在调用 destroy() 之前将它们从地面中移除。

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

// destroy the ground and any remaining associated resources
ground.destroy();
另请参阅
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<Ground>}
起始版本:GeoScene Maps SDK for JavaScript 4.9

加载与地面关联的所有外部可加载资源。对于地面,这将加载所有图层。

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

在地面图层服务中查询给定几何的高程值。

返回的结果包含几何的副本,其中 z 值从具有可用数据的第一个图层的高程数据中采样。可以使用 demResolution 选项设置查询高程的分辨率。在许多情况下,auto demResolution 可用于获取高质量的高程样本,而无需知道服务中数据的确切位置。这对于组合来自多个源的高程数据的服务 (例如世界高程服务) 特别有用。如果需要更多控制或更高质量的样本,请使用 finest-contiguous 或固定 {number} 分辨率。

参数
规范

要采样的几何。

options Object
optional

其他查询选项。

规范
demResolution Number|String
optional
默认值:auto

控制要从中采样高程数据的水平分辨率 (像元大小),以米为单位 (默认为 auto)。有关不同设置的更多详细信息,请参见下表。

demResolution 描述
auto 自动为输入几何的每个坐标选择适当的分辨率。当前实现将尝试使用最好的可用分辨率,前提是所需的切片请求总数不超过某个最大数量 (当前为 20 个)。请注意,这可能会导致根据不同的分辨率对值进行采样。
finest-contiguous 根据整个几何中的最佳可用分辨率(像元大小)对高程进行采样。
{number} 根据最接近指定分辨率的分辨率(以米为单位)对高程进行采样。
returnSampleInfo Boolean
optional
默认值: false

指示是否返回每个样本坐标的其他采样信息。

noDataValue Number
optional
默认值:0

没有可用数据时,在生成的几何中显示的值。

optional

中止请求的 AbortSignal。如果取消,则 promise 将被拒绝,并返回一个名为 AbortError 的错误。另请参见 AbortController

返回
类型 描述
Promise<ElevationQueryResult> 解析为具有采样几何、分辨率信息和无数据值的对象。
示例
require(["geoscene/Map", "geoscene/geometry/Multipoint"], function(Map, Multipoint) {
  const map = new Map({
    ground: "world-elevation"
  });

  // Various points across a ridge of the mount everest
  const points = [
     [ 86.9252, 27.9883 ],
     [ 86.9265, 27.9894 ],
     [ 86.9292, 27.9923 ],
     [ 86.9324, 27.9960 ],
     [ 86.9359, 27.9992 ]
   ];

  map.ground.queryElevation(new Multipoint({ points }), { returnSampleInfo: true })

    // Successfully sampled all points
    .then(function(result) {
      // Print result of each sampled point to the console
      result.geometry.points.forEach(function(point, index) {
        const elevation = Math.round(point[2]);
        const resolution = result.sampleInfo[index].demResolution;

        const coordinateText = "(" + point[0] + ", " + point[1] + ")";
        const resolutionText = Math.round(resolution) + " meter resolution";

        console.log("Sampled " + coordinateText + ": " + elevation + " at " + resolutionText);
      });
    })

    // Failed to sample (e.g. service unavailable)
    .catch(function(error) {
      console.error("Failed to query elevation:", error);
    });
});
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
});

类型定义

ElevationQueryResult

queryElevation() promise 完成时返回的对象:

属性

具有采样 z 值的几何。

sampleInfo Object[]
optional

包含有关如何对几何进行采样的附加信息。此属性的存在取决于用户是否为几何中的每个坐标设置 options.returnSampleInfo = true

规范
demResolution Number

对 z 值进行采样的分辨率。如果没有数据可用于给定坐标的采样,则该坐标的 dem 分辨率值为 -1。

从中对相应坐标的数据进行采样的高程源。

noDataValue Number

没有可用数据时使用的值。

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