new HeightmapTerrainData()
单张地形瓦片数据(以高度图形式存储); 高度图是由高程值构成的矩形数组,按行主序排列(数据方向:北→南为行方向,西→东为列方向)
| Name | Type | Default | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options.buffer |
TypedArray |
包含高度数据的缓冲区。 |
|||||||||||||||||||||||||||||||||||||
options.width |
Number |
高度图的宽度(经度方向),以样本为单位。 |
|||||||||||||||||||||||||||||||||||||
options.height |
Number |
高度图的高度(纬度方向),以样本为单位。 |
|||||||||||||||||||||||||||||||||||||
options.childTileMask |
Number | 15 |
可选
一个位掩码,用于表示该瓦片的四个子瓦片是否存在。 若某个子瓦片的对应位被置为1,则在需要时会请求该子瓦片的几何数据;若该位为0,则不请求子瓦片,而是通过父瓦片数据进行上采样。 各子瓦片对应的位值如下:
|
||||||||||||||||||||||||||||||||||||
options.structure |
Object |
可选
描述高度数据结构的对象。
|
|||||||||||||||||||||||||||||||||||||
options.createdByUpsampling |
Boolean | false |
可选
如果此实例是通过对另一个实例进行上采样创建的,则为true;否则为false。 |
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 SuperMap3D.HeightmapTerrainData({
buffer : heightBuffer,
width : 65,
height : 65,
childTileMask : childTileMask,
waterMask : waterMask
});
Members
-
readonly creditsArray.<Credit>
-
该瓦片的版权声明。
-
readonly waterMaskUint8Array Image Canvas
-
此地形数据中包含的文字水域掩码。水域掩码是一个方形 Uint8Array 或影像, 0 到 255 之间的值。
Methods
-
interpolateHeight(rectangle, longitude, latitude){Number}
-
计算指定经纬度的地形高度。
Name Type Description rectangleRectangle 该地形数据覆盖的矩形区域。
longitudeNumber 经度,单位为弧度。
latitudeNumber 以弧度为单位的纬度。
Returns:
Type Description Number 指定位置处的地形高度。如果位置不在矩形范围内,此方法将推算出高度,但对于远在矩形范围外的位置,推算出的高度很可能会大为 对于远在矩形外的位置,推算高度很可能会大相径庭。 -
isChildAvailable(thisX, thisY, childX, childY){Boolean}
-
根据
HeightmapTerrainData.childTileMask确定给定的子地形图是否可用。 给定的子地形图坐标被假定为该地形图的四个子地形图之一。 如果给定的是非子地形图坐标,则会返回东南方向子地形图的可用性。Name Type Description thisXNumber 该瓦片(父瓦片)的 X 坐标。
thisYNumber 该瓦片(父瓦片)的 Y 坐标。
childXNumber 要检查是否可用的子瓦片的 X 坐标。
childYNumber 要检查是否可用的子瓦片的 Y 坐标。
Returns:
Type Description Boolean 如果子瓦片可用,则为 true;否则为 false。 -
upsample(tilingScheme, thisX, thisY, thisLevel, descendantX, descendantY, descendantLevel){Promise.<HeightmapTerrainData>|undefined}
-
对地形数据进行高采样,供后代瓦片使用。 生成的实例将包含本实例中高度样本的子集,必要时还会进行内插。
Name Type Description tilingSchemeTilingScheme 该地形数据的切片方案。
thisXNumber 该瓦片在切片方案中的 X 坐标。
thisYNumber 该瓦片在切片方案中的 Y 坐标。
thisLevelNumber 该瓦片在瓦片切片方案中的级别。
descendantXNumber 要进行高采样的子瓦片在切片方案中的 X 坐标。
descendantYNumber 要进行高采样的子瓦片在切片方案中的 Y 坐标。
descendantLevelNumber 该瓦片在切片方案中的级别。
Returns:
Type Description Promise.<HeightmapTerrainData> | undefined 对子瓦片的高采样地形数据的Promise;如果正在进行的异步高采样操作过多,请求被推迟,则未定义。 -
wasCreatedByUpsampling(){Boolean}
-
获取一个值,表明该地形数据是否是通过上采样低分辨率地形数据创建的。 如果该值为 false,则表示数据是从其他来源获取的,例如从远程服务器下载。 对于调用
HeightmapTerrainData#upsample所返回的实例,本方法应返回 true。Returns:
Type Description Boolean 如果该实例是通过高采样创建的,则为 true;否则为 false。