HeightmapEncoding是CesiumJS的一个模块,用于在提供高程数据的同时压缩数据。这是通过将高程值与一组相应数据点的平均值进行比较来实现的。使用HeightmapEncoding可以减少需要传输给CesiumJS客户端的数据量。
压缩高程数据并返回一个UInt16Array。参数说明如下:
heightmap
一个Float32Array,其中包含高程数据。width
高程数据的宽度,即一维数组的长度。factor
一个数值,表示编码后的高程值的最大值,一般取地形的实际高度范围,例如4000。解压缩以获取原始高程数据,并返回一个浮点数类型的数组。参数说明如下:
encodedData
一个UInt16Array,由encodeHeightmap
返回。width
高程数据的宽度,即一维数组的长度。height
高程数据的高度,即二维数组中的行数。exaggeration
一个数值,表示编码后的高程值需要乘以的系数。var heightmap = new Float32Array(...);
var width = ...;
var factor = ...;
var encodedData = Cesium.HeightmapEncoding.encodeHeightmap(heightmap, width, factor);
var encodedData = new Uint16Array(...);
var width = ...;
var height = ...;
var exaggeration = ...;
var decodedData = Cesium.HeightmapEncoding.decodeHeightmap(encodedData, width, height, exaggeration);
factor
和exaggeration
的值应该相同才能得到正确的高程数据。