麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - QuantizedMeshTerrainData 中文文档

本文介绍下Cesium中 QuantizedMeshTerrainData API的详细使用说明。

QuantizedMeshTerrainData API 调用方法

new Cesium.QuantizedMeshTerrainData(options)
用于单个瓦片的地形数据,其中地形数据表示为量化格网。 量化格网包括三个顶点属性:经度、纬度和高度。所有属性都表示为0到32767范围内的16位值。 经纬度在瓦片的西南角为0,东北角为32767。瓦片的最小高度为0,最大高度为32767。
Name Type Description
options Object 对象,具有以下属性:
Name Type Default Description
quantizedVertices Uint16Array 包含量化格网的缓冲区。
indices Uint16Array | Uint32Array 指定量化顶点如何连接成三角形的索引。每三个索引指定一个三角形。
minimumHeight Number 在椭球上的瓦片内的最小地形高度,以米为单位。
maximumHeight Number 在椭球上的瓦片内的最大地形高度,以米为单位。
boundingSphere BoundingSphere 包围格网中所有顶点的球体。
orientedBoundingBox OrientedBoundingBox optional 包含格网中所有顶点的OrientedBoundingBox。
horizonOcclusionPoint Cartesian3 格网的水平遮挡点(horizon occlusion point)。 如果这个点在地平线以下,那么整个瓦片也被认为是在地平线以下。该点用椭球坐标(ellipsoid-scaled)表示。
westIndices Array.<Number> 瓦片西侧边缘顶点的索引。
southIndices Array.<Number> 瓦片南侧边缘顶点的索引。
eastIndices Array.<Number> 瓦片东侧边缘顶点的索引。
northIndices Array.<Number> 瓦片北侧边缘顶点的索引。
westSkirtHeight Number The height of the skirt to add on the western edge of the tile.
southSkirtHeight Number The height of the skirt to add on the southern edge of the tile.
eastSkirtHeight Number The height of the skirt to add on the eastern edge of the tile.
northSkirtHeight Number The height of the skirt to add on the northern edge of the tile.
childTileMask Number 15 optional 一个位掩码,指示此瓦片的四个子代中哪个存在。 如果设置了子瓦片的位,那么当需要时也将为该瓦片请求几何图形。 如果位被清除,则不请求子瓦片,而是从父块上采样(upsampled)几何图形。 位值如下:
Bit Position Bit Value Child Tile
0 1 Southwest
1 2 Southeast
2 4 Northwest
3 8 Northeast
createdByUpsampling Boolean false optional 如果此实例是通过上采样另一个实例创建的,则为true;否则,false。
encodedNormals Uint8Array optional 包含每个顶点法线的缓冲区,使用“oct”编码
waterMask Uint8Array optional 含有水掩模的缓冲区。
credits Array.<Credit> optional 此瓦片的版权数组。
示例:
var data = new Cesium.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 Cesium.BoundingSphere(new Cesium.Cartesian3(1.0, 2.0, 3.0), 10000),
    orientedBoundingBox : new Cesium.OrientedBoundingBox(new Cesium.Cartesian3(1.0, 2.0, 3.0), Cesium.Matrix3.fromRotationX(Cesium.Math.PI, new Cesium.Matrix3())),
    horizonOcclusionPoint : new Cesium.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
});
参考:

成员变量

此瓦片的版权数组。
waterMask : Uint8Array|Image|Canvas
这个地形数据中包含的水掩模,如果有的话。 水掩模是一个矩形的Uint8Array或图像,其中值255表示水,值0表示土地。 0到255之间的值也可以平滑地混合在土地和水之间。

内置方法

interpolateHeight(rectangle, longitude, latitude)Number
计算指定经度和纬度处的地形高度。
Name Type Description
rectangle Rectangle 这个地形数据覆盖的矩形。
longitude Number 以弧度表示的经度。
latitude Number 以弧度表示的纬度。
返回值:
指定位置的地形高度。位置被夹在矩形中,因此可能会出现位置远远超出矩形的错误结果。
isChildAvailable(thisX, thisY, childX, childY)Boolean
根据HeightmapTerrainData.childTileMask确定给定的子瓦片是否可用。 给定的子瓦片坐标被假定为该瓦片的四个子瓦片中的一个。如果给出了非子瓦片坐标,则返回东南子瓦片的可用性。
Name Type Description
thisX Number 这个(父)瓦片的X坐标。
thisY Number 这个(父)瓦片的Y坐标。
childX Number 检查可用性的子瓦片的X坐标。
childY Number 检查可用性的子瓦片的Y坐标。
返回值:
如果子瓦片可用,则为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 我们正在对其进行上采样的后代瓦片的切片方案中的级别。
返回值:
对后代瓦片的上采样高度图地形数据的约定(promise), 或者如果太多异步上采样操作正在进行并且请求被延迟,则未定义。
wasCreatedByUpsampling()Boolean
获取一个值,该值指示此地形数据是否由上采样低分辨率地形数据创建。 如果该值为false,则从其他来源获取数据,例如从远程服务器下载数据。 对于调用HeightmapTerrainData#upsample返回的实例,该方法应该返回true。
返回值:
如果此实例是通过上采样创建的,则为true;否则,false。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)