threejs 绘制地图高度不受经纬度影响凹陷问题解决

threejs yekong 283℃

在之前的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));

这样,地图区域的高度将会增加,使其不再看起来像凹下去的一块。你可以根据实际需求调整偏移量的数值,以达到理想的效果。

解决凹陷的中国地图

解决凹陷的中国地图

解决凹陷的省份地图

解决凹陷的省份地图

解决凹陷的市级地图

解决凹陷的市级地图

喜欢 (0)