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 一个位掩码,指示此磁贴的四个子级中存在哪一个。 如果设置了子级位,则该平铺也将请求几何体 是需要的。如果清除位,则不请求子平铺,而几何图形 而是从家长那里进行了抽样调查。位值如下:
Bit PositionBit ValueChild Tile
01Southwest
12Southeast
24Northwest
38Northeast
waterMask Uint8Array optional 该地形数据中包含的水面罩(如果有)。水面具是正方形 uint8数组或图像,其中值255表示水,值0表示陆地。 允许0到255之间的值,以便在陆地和水之间平滑地混合。
structure Object optional 描述高度数据结构的对象。
Name Type Default Description
heightScale Number 1.0 optional 乘以高度样本以获得 高于高度偏移的高度,以米为单位。将得到的高度与偏移相加 乘以刻度后的高度。
heightOffset Number 0.0 optional 要添加到缩放高度以获得最终值的偏移 高度(米)。在高度采样乘以 高度刻度。
elementsPerHeight Number 1 optional 缓冲区中构成单个高度的元素数 样品。通常为1,表示每个元素都是一个单独的高度采样。如果 它大于1,即这些元素的数量一起构成高度样本,即 根据structure.element乘数以及结构.isBigEndian属性。
stride Number 1 optional 从的第一个元素获取要跳过的元素数 一个高度到下一个高度的第一个元素。
elementMultiplier Number 256.0 optional 当 跨步属性大于1。例如,如果步幅为4且跨步乘数 为256,高度计算如下: `高度=缓冲区[索引]+缓冲区[索引+1]*256+缓冲区[索引+2]*256*256+缓冲区[索引+3]*256*256*256` 这是假设isBigEndian属性为false。如果顺序是真的 元素被反转。
isBigEndian Boolean false optional 当 跨步属性大于1。如果此属性为false,则第一个元素是 低阶元素。如果为真,则第一个元素是高阶元素。
lowestEncodedHeight Number optional 可以存储在高度缓冲区中的最小值。任何较低的高度 在用“heightScale”和“heightOffset”编码后,此值将被钳制到此值。例如,如果 缓冲区是“Uint16Array”,此值应为0,因为“Uint16Array”不能存储负数。如果此参数为 未指定,不强制执行最小值。
highestEncodedHeight Number optional 可以存储在高度缓冲区中的最高值。任何更高的高度 在用“heightScale”和“heightOffset”编码后,此值将被钳制到此值。例如,如果 缓冲区是“Uint16Array”,此值应为“256*256-1”或65535,因为“Uint16Array”不能存储更大的数字 比65535。如果未指定此参数,则不强制执行最大值。
encoding HeightmapEncoding HeightmapEncoding.NONE optional 缓冲区上使用的编码。
createdByUpsampling Boolean false optional 如果此实例是通过上采样另一个实例创建的,则为True; 否则,错误。
Example:
var buffer = ...
var heightBuffer = new Uint16Array(buffer, 0, that._heightmapWidth * that._heightmapWidth);
var childTileMask = new Uint8Array(buffer, heightBuffer.byteLength, 1)[0];
var waterMask = new Uint8Array(buffer, heightBuffer.byteLength + 1, buffer.byteLength - heightBuffer.byteLength - 1);
var terrainData = new Cesium.HeightmapTerrainData({
  buffer : heightBuffer,
  width : 65,
  height : 65,
  childTileMask : childTileMask,
  waterMask : waterMask
});
See:

Members

此平铺的学分数组。

waterMask : Uint8Array|HTMLImageElement|HTMLCanvasElement

该地形数据中包含的水面罩(如果有)。水面具是正方形 uint8数组或图像,其中值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假定给定的子平铺坐标 成为这个瓷砖的四个孩子之一。如果非子平铺坐标为 给定后,将返回东南子块的可用性。
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:
为后代瓷砖提供高采样高度地图地形数据的承诺, 如果正在进行太多异步上采样操作并且请求已 推迟。

wasCreatedByUpsampling()Boolean

获取一个值,该值指示此地形数据是否是通过向上采样较低分辨率创建的 地形数据。如果此值为false,则数据是从其他来源获取的,例如 从远程服务器下载。对于实例,此方法应返回true 打电话给HeightmapTerrainData#upsample回来了。
Returns:
如果此实例是通过上采样创建的,则为True;否则为false。