Class: QuantizedMeshTerrainData

QuantizedMeshTerrainData

new QuantizedMeshTerrainData()

单个瓦片的地形数据,采用量化网格形式表示。 量化网格包含三个顶点属性:经度、纬度和高度,所有属性均以 16 位整数值表示,取值范围为 0 至 32767。 经度和纬度在瓦片的西南角为 0,东北角为 32767;高度在瓦片内最低处为 0,最高处为 32767。

Name Type Default Description
options.quantizedVertices Uint16Array

包含量化网格的buffer。

options.indices Uint16Array | Uint32Array

指定量化顶点如何链接到三角形的索引。每三个索引指定一个三角形。

options.minimumHeight Number

瓦片内的最小地形高度,以米为单位在椭圆体上方。

options.maximumHeight Number

瓦片内的最大地形高度,以米为单位在椭圆体上方。

options.boundingSphere BoundingSphere

包围网格中所有顶点的球体。

options.orientedBoundingBox OrientedBoundingBox 可选

一个 OrientedBoundingBox 包围网格中的所有顶点。

options.horizonOcclusionPoint Cartesian3

网格的水平遮挡点。如果该点位于地平线以下,则假定整个瓦片也位于地平线以下。该点以椭球坐标表示。

options.westIndices Array.<Number>

瓦片西侧边缘顶点的索引。

options.southIndices Array.<Number>

瓦片南侧边缘顶点的索引。

options.eastIndices Array.<Number>

瓦片东侧边缘顶点的索引。

options.northIndices Array.<Number>

瓦片北侧边缘顶点的索引。

options.westSkirtHeight Number

添加到瓦片西侧的裙边高度。

options.southSkirtHeight Number

添加到瓦片南侧的裙边高度。

options.eastSkirtHeight Number

添加到瓦片东侧的裙边高度。

options.northSkirtHeight Number

添加到瓦片北侧的裙边高度。

options.childTileMask Number 15 可选

一个位掩码,指示此 tile 的四个子项中的哪一个存在。如果设置了子级,则在需要时也会为该图块请求几何图形。如果清除该位,则不请求子级瓦片,而是从父级瓦片上采样几何图形。位值如下:

位的位置位数值子级瓦片
01西南
12东南
24西北
38东北

options.createdByUpsampling Boolean false 可选

如果此实例是通过对另一个实例进行上采样创建的,则为true;否则为false。 otherwise, false.

options.encodedNormals Uint8Array 可选

包含每个顶点法线的buffer,使用'oct'编码进行编码。

options.waterMask Uint8Array 可选

包含水掩膜的缓冲区。

options.credits Array.<Credit> 可选

此瓦片的版权声明。

See:
Example
var data = new SuperMap3D.QuantizedMeshTerrainData({
    minimumHeight : -100,
    maximumHeight : 2101,
    quantizedVertices : new Uint16Array([// order is SW NW SE NE
                                         // longitude
                                         0, 0, 32767, 32767,
                                         // latitude
                                         0, 32767, 0, 32767,
                                         // heights
                                         16384, 0, 32767, 16384]),
    indices : new Uint16Array([0, 3, 1,
                               0, 2, 3]),
    boundingSphere : new SuperMap3D.BoundingSphere(new SuperMap3D.Cartesian3(1.0, 2.0, 3.0), 10000),
    orientedBoundingBox : new SuperMap3D.OrientedBoundingBox(new SuperMap3D.Cartesian3(1.0, 2.0, 3.0), SuperMap3D.Matrix3.fromRotationX(SuperMap3D.Math.PI, new SuperMap3D.Matrix3())),
    horizonOcclusionPoint : new SuperMap3D.Cartesian3(3.0, 2.0, 1.0),
    westIndices : [0, 1],
    southIndices : [0, 1],
    eastIndices : [2, 3],
    northIndices : [1, 3],
    westSkirtHeight : 1.0,
    southSkirtHeight : 1.0,
    eastSkirtHeight : 1.0,
    northSkirtHeight : 1.0
});

Members

creditsArray.<Credit>

该瓦片的版权声明。

waterMaskUint8Array Image Canvas

此地形数据中包含的水面掩膜数据。 水面掩膜数据是一个矩形 Uint8Array 或影像,其中 255 表示水,0 表示陆地。 0 到 255 之间的值也允许在陆地和水之间平滑混合

Methods

interpolateHeight(rectangle, longitude, latitude){Number}

计算指定经纬度的地形高度。

Name Type Description
rectangle Rectangle

该地形数据覆盖的矩形范围。

longitude Number

经度,单位为弧度。

latitude Number

纬度,单位为弧度。

Returns:
Type Description
Number 指定位置处的地形高度。位置被夹在矩形中,因此如果位置远在矩形之外,结果可能会不正确。

isChildAvailable(thisX, thisY, childX, childY){Boolean}

根据HeightmapTerrainData.childTileMask确定给定的子地形图是否可用。 给定的子地形图坐标被假定为该地形图的四个子地形图之一。 如果给定的是非子地形图坐标,则返回东南方向子地形图的可用性。

Name Type Description
thisX Number

此瓦片(父级瓦片)的 X 坐标。

thisY Number

此瓦片(父级瓦片)的 Y 坐标。

childX Number

要检查的子瓦片的 X 坐标是否可用。

childY Number

要检查的子瓦片的 Y 坐标是否可用。

Returns:
Type Description
Boolean 如果子瓦片可用,则返回 true;否则返回 false。

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

对地形数据进行高采样,供子级瓦片使用。生成的实例将包含此实例中顶点的子集,必要时还会进行插值。

Name Type Description
tilingScheme TilingScheme

该地形数据的切片方案。

thisX Number

该瓦片在切片方案中的 X 坐标。

thisY Number

该瓦片在切片方案中的 Y 坐标。

thisLevel Number

该瓦片在瓦片切片方案中的级别。

descendantX Number

我们要进行高采样的子级瓦片在切片方案中的 X 坐标。

descendantY Number

我们要进行高采样的子级瓦片在切片方案中的 Y 坐标。

descendantLevel Number

我们要进行高采样的子级瓦片在切片方案中的级别。

Returns:
Type Description
Promise.<QuantizedMeshTerrainData> | undefined 对子级瓦片的高采样高度图地形数据的Promise;如果正在进行的异步高采样操作过多,请求被推迟,则未定义。

wasCreatedByUpsampling(){Boolean}

获取一个值,表明该地形数据是否是通过高采样低分辨率地形数据创建的。 如果该值为 false,则表示数据是从其他来源获取的,例如从远程服务器下载。 对于通过调用 HeightmapTerrainData#upsample 返回的实例,本方法应返回 true。

Returns:
Type Description
Boolean 如果该实例是通过高采样创建的,则为 true;否则为 false。