QuantizedMeshTerrainData

new SuperMap3D.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 optional 一个 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 optional 一个位掩码,指示此 tile 的四个子项中的哪一个存在。如果设置了子级,则在需要时也会为该图块请求几何图形。如果清除该位,则不请求子级瓦片,而是从父级瓦片上采样几何图形。位值如下:
位的位置位数值子级瓦片
01西南
12东南
24西北
38东北
options.createdByUpsampling Boolean false optional 如果此实例是通过对另一个实例进行上采样创建的,则为true;否则为false。 otherwise, false.
options.encodedNormals Uint8Array optional 包含每个顶点法线的buffer,使用'oct'编码进行编码。
options.waterMask Uint8Array optional 包含水掩膜的缓冲区。
options.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。