在之前的threejs 绘制地图高度不受经纬度影响,我们解决了高度问题,但是又衍生出了新的问题,就是地图出现凹陷的情况,我们需要处理一下这种情况。
这种情况可能是由于地图区域在渲染时,高度数值与其他区域相比过低。为了使地图区域不再看起来像凹下去的一块,可以对高度数值进行一定的调整,使其与其他区域更加接近。
例如,你可以为归一化后的高度值添加一个偏移量,以提高地图区域的高度。在normalizeHeight
函数中,可以添加一个offset
参数:
function normalizeHeight(height, minHeight, maxHeight, offset = 0) {
// 将高度值归一化到范围 0 到 1
const normalizedHeight = (height - minHeight) / (maxHeight - minHeight);
// 可以根据需要调整高度系数,例如将高度值放大 10 倍
const heightScaleFactor = 10;
// 返回调整后的高度值,加上偏移量
return normalizedHeight * heightScaleFactor + offset;
}
然后,在创建ExtrudeMesh时,可以为normalizeHeight
函数提供一个偏移量,例如:
// 假设原始高度数据如下
const minHeight = 100;
const maxHeight = 1000;
// 添加一个偏移量,例如 5
const heightOffset = 5;
// 创建ExtrudeMesh时,使用normalizeHeight函数处理高度值,并加上偏移量
const extrudeMesh = ExtrudeMesh(pointsArrs, normalizeHeight(height, minHeight, maxHeight, heightOffset));
这样,地图区域的高度将会增加,使其不再看起来像凹下去的一块。你可以根据实际需求调整偏移量的数值,以达到理想的效果。