HeightmapTerrainData

new Cesium.HeightmapTerrainData(options)

单个瓦片的地形数据,其中地形数据表示为高度贴图。 高度贴图 是按行优先顺序从北到南、从西到东排列的矩形高度数组。
Name Type Description
options object 对象,具有以下属性:
Name Type Default Description
buffer Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array 包含高度数据的缓冲区。
width number 高度贴图的宽度(经度方向),以样本为单位。
height number 高度贴图的高度(纬度方向),以样本为单位。
childTileMask number 15 optional 一个位掩码,指示此图块的四个子图块中存在哪一个。 如果设置了子位,则当该图块 是必需的。 如果清除该位,则不会请求子平铺,并且 geometry 为 而是从父级进行上采样。 位值如下所示:
Bit Position位值子平铺
01西南
12东南
24西北
38东北
waterMask Uint8Array optional 此地形数据中包含的水掩膜 (如果有)。 水面罩是一个正方形 Uint8Array 或图像,其中值 255 表示水,值 0 表示陆地。 允许介于 0 和 255 之间的值,以便在陆地和水之间平滑混合。
structure object optional 描述高度数据结构的对象。
Name Type Default Description
heightScale number 1.0 optional 将高度样本相乘以获得 heightOffset 以上的高度,以米为单位。 heightOffset 将添加到生成的 乘以刻度后的高度。
heightOffset number 0.0 optional 要添加到缩放高度以获得最终 高度(以米为单位)。 偏移量是在高度样本乘以 heightScale 的
elementsPerHeight number 1 optional 缓冲区中构成单个高度的元素数 样本。 这通常为 1,表示每个元素都是一个单独的高度样本。 如果 大于 1,则该数量的元素一起构成高度样本,即 根据 structure.elementMultiplier 和 structure.isBigEndian 属性计算。
stride number 1 optional 从 的第一个元素开始跳过的元素数 一个高度到下一个高度的第一个元素。
elementMultiplier number 256.0 optional 用于计算高度值的乘数,当 stride 属性大于 1。 例如,如果 stride 为 4,并且 strideMultiplier 为 256,则高度的计算方式如下: '高度 = 缓冲区[索引] + 缓冲区[索引 + 1] * 256 + 缓冲区[索引 + 2] * 256 * 256 + 缓冲区[索引 + 3] * 256 * 256 * 256' 这是假设 isBigEndian 属性为 false。 如果为 true,则 元素被反转。
isBigEndian boolean false optional 表示缓冲区中元素的字节序,当 stride 属性大于 1。 如果此属性为 false,则第一个元素是 低阶元素。 如果为 true,则第一个元素是高阶元素。
lowestEncodedHeight number optional 高度缓冲区中可以存储的最小值。 任何较低的高度 小于该值,在使用 'heightScale' 和 'heightOffset' 编码后,该值被固定到该值。 例如,如果 height buffer 是 'Uint16Array',此值应为 0,因为 'Uint16Array' 无法存储负数。 如果该参数为 未指定,不强制执行最小值。
highestEncodedHeight number optional 高度缓冲区中可以存储的最大值。 任何更高的高度 小于该值,在使用 'heightScale' 和 'heightOffset' 编码后,该值被固定到该值。 例如,如果 height buffer 是 'Uint16Array',此值应为 '256 * 256 - 1' 或 65535,因为 'Uint16Array' 无法存储更大的数字 比 65535 多。 如果未指定此参数,则不强制实施最大值。
encoding HeightmapEncoding HeightmapEncoding.NONE optional 在缓冲区上使用的编码。
createdByUpsampling boolean false optional 如果此实例是通过对另一个实例进行上采样创建的,则为 True; 否则为 false。
Example:
const buffer = ...
const heightBuffer = new Uint16Array(buffer, 0, that._heightmapWidth * that._heightmapWidth);
const childTileMask = new Uint8Array(buffer, heightBuffer.byteLength, 1)[0];
const waterMask = new Uint8Array(buffer, heightBuffer.byteLength + 1, buffer.byteLength - heightBuffer.byteLength - 1);
const terrainData = new Cesium.HeightmapTerrainData({
  buffer : heightBuffer,
  width : 65,
  height : 65,
  childTileMask : childTileMask,
  waterMask : waterMask
});
See:

Members

An array of credits for this tile.

waterMask : Uint8Array|HTMLImageElement|HTMLCanvasElement

此地形数据中包含的水面罩(如果有)。 水面罩是一个正方形 Uint8Array 或图像,其中值 255 表示水,值 0 表示陆地。 允许介于 0 和 255 之间的值,以便在陆地和水之间平滑混合。

Methods

interpolateHeight(rectangle, longitude, latitude)number

计算指定经纬度处的地形高度。
Name Type Description
rectangle Rectangle 此地形数据覆盖的矩形。
longitude number 以弧度为单位的经度。
latitude number 以弧度为单位的纬度。
Returns:
指定位置的地形高度。 如果位置 在矩形之外,这个方法会推断高度,很可能会很疯狂 对于远在矩形之外的位置不正确。

isChildAvailable(thisX, thisY, childX, childY)boolean

根据 HeightmapTerrainData.childTileMask 中。 假定给定的子图块坐标 成为此牌的四个子牌之一。 如果非子图块坐标为 给定,则返回 southeast child tile 的可用性。
Name Type Description
thisX number 此(父)瓦片的瓦片 X 坐标。
thisY number 此(父)瓦片的瓦片 Y 坐标。
childX number 用于检查可用性的子磁贴的磁贴 X 坐标。
childY number 要检查可用性的子磁贴的磁贴 Y 坐标。
Returns:
如果子磁贴可用,则为 True;否则为 false。

upsample(tilingScheme, thisX, thisY, thisLevel, descendantX, descendantY, descendantLevel)Promise.<HeightmapTerrainData>|undefined

对此地形数据进行上采样,以供后代瓦片使用。 生成的实例将包含 高度样本,必要时进行插值。
Name Type Description
tilingScheme TilingScheme 此地形数据的平铺方案。
thisX number 平铺方案中此瓦片的 X 坐标。
thisY number 此瓦片在切片方案中的 Y 坐标。
thisLevel number 此瓦片在平铺方案中的级别。
descendantX number 我们正在上采样的后代瓦片的平铺方案中的 X 坐标。
descendantY number 我们正在进行上采样的后代瓦片的平铺方案中的 Y 坐标。
descendantLevel number 我们正在上采样的后代瓦片的平铺方案中的级别。
Returns:
为后代瓦片提供上采样高度贴图地形数据的承诺, 或 undefined 如果网格不可用。

wasCreatedByUpsampling()boolean

获取一个值,该值指示此地形数据是否是通过对较低分辨率的上采样创建的 地形数据。 如果此值为 false,则数据是从其他来源获取的,例如 从远程服务器下载。 对于实例,此方法应返回 true 从调用 HeightmapTerrainData#upsample 返回。
Returns:
如果此实例是通过上采样创建的,则为 True;否则为 false。
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.