将游戏位置转换为旋转地图中的纬度

时间:2020-08-28 23:27:51

标签: javascript math geolocation

我有数学问题,无法解决问题,我对此感到愚蠢。

我定义了这样的游戏界限。

const GAME_BOUNDS = {
    x: {
        min: -3200,
        max: 4800
    },
    y: {
        min: -4000,
        max: 6000
    }
}

我有职位。 const POS = {x: 100, y: -500}。我想将位置转换为正确的经度/纬度。其中lng 180是x: 4800。但是诀窍是,地图旋转了,我找不到要应用正确的lng / lat所需的正确旋转。

1 个答案:

答案 0 :(得分:0)

您可以定义一个漂亮的函数,将一个值x从一个范围xMin..xMax映射到另一个范围yMin..yMax:

function remap(x, xMin, xMax, yMin, yMax) {
    return yMin + (yMax - yMin)*(x - xMin)/(xMax - xMin);
}

现在说您想将x值从-3200..4800映射到-180..180并将其存储为变量lng,并将y值从-4000..6000映射到-90..90并将其存储为lat

let lng = remap(x, -3200, 4800, -180, 180);
let lat = remap(y, -4000, 6000, -90, 90);