QuantizedMeshTerrainData

new SuperMap3D.QuantizedMeshTerrainData(options)

单个瓦片的地形数据,其中地形数据表示为量化网格。量化网格由三个顶点属性组成,经度、纬度和高度。所有属性都表示为 0 到 32767 范围内的 16 位值。在瓦片的西南角,经度和纬度为零,在东北角为 32767。在瓦片中的最小高度处高度为零,在瓦片中的最大高度处为 32767。
Name Type Description
options Object 具有以下属性的对象:
Name Type Default Description
quantizedVertices Uint16Array 包含量化网格的buffer。
indices Uint16Array | Uint32Array 指定量化顶点如何链接到三角形的索引。每三个索引指定一个三角形。
minimumHeight Number 瓦片内的最小地形高度,以米为单位在椭圆体上方。
maximumHeight Number 瓦片内的最大地形高度,以米为单位在椭圆体上方。
boundingSphere BoundingSphere 包围网格中所有顶点的球体。
orientedBoundingBox OrientedBoundingBox optional 一个 OrientedBoundingBox 包围网格中的所有顶点。
horizonOcclusionPoint Cartesian3 网格的水平遮挡点。如果该点位于地平线以下,则假定整个瓦片也位于地平线以下。该点以椭球坐标表示。
westIndices Array.<Number> 瓦片西侧边缘顶点的索引。
southIndices Array.<Number> 瓦片南侧边缘顶点的索引。
eastIndices Array.<Number> 瓦片东侧边缘顶点的索引。
northIndices Array.<Number> 瓦片北侧边缘顶点的索引。
westSkirtHeight Number 添加到瓦片西侧的裙边高度。
southSkirtHeight Number 添加到瓦片南侧的裙边高度。
eastSkirtHeight Number 添加到瓦片东侧的裙边高度。
northSkirtHeight Number 添加到瓦片北侧的裙边高度。
childTileMask Number 15 optional 一个位掩码,指示此 tile 的四个子项中的哪一个存在。如果设置了子级,则在需要时也会为该图块请求几何图形。如果清除该位,则不请求子级瓦片,而是从父级瓦片上采样几何图形。位值如下:
位的位置位数值子级瓦片
01西南
12东南
24西北
38东北
createdByUpsampling Boolean false optional 如果此实例是通过对另一个实例进行上采样创建的,则为true;否则为false。 otherwise, false.
encodedNormals Uint8Array optional 包含每个顶点法线的buffer,使用'oct'编码进行编码。
waterMask Uint8Array optional 包含水域掩码的 buffer 。
credits Array.<Credit> optional 此瓦片的凭证数组。
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
});
See:

Members

credits : Array.<Credit>

该瓦片的凭证数组。

waterMask : Uint8Array|Image|Canvas

此地形数据中包含的水域掩码。水域掩码是一个矩形 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确定给定的子地形图是否可用。 给定的子地形图坐标被假定为该地形图的四个子地形图之一。 如果给定的是非子地形图坐标,则返回东南方向子地形图的可用性。
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.<QuantizedMeshTerrainData>|undefined

对地形数据进行高采样,供子级瓦片使用。生成的实例将包含此实例中顶点的子集,必要时还会进行插值。
Name Type Description
tilingScheme TilingScheme 该地形数据的切图方案。
thisX Number 该瓦片在切图方案中的 X 坐标。
thisY Number 该瓦片在切图方案中的 Y 坐标。
thisLevel Number 该瓦片在瓦片切图方案中的级别。
descendantX Number 我们要进行高采样的子级瓦片在切图方案中的 X 坐标。
descendantY Number 我们要进行高采样的子级瓦片在切图方案中的 Y 坐标。
descendantLevel Number 我们要进行高采样的子级瓦片在切图方案中的级别。
Returns:
对子级瓦片的高采样高度图地形数据的Promise;如果正在进行的异步高采样操作过多,请求被推迟,则未定义。

wasCreatedByUpsampling()Boolean

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