精确地将方位角度转换为人类

时间:2014-02-12 22:46:29

标签: javascript human-readable azimuth

我正在编写这段代码来将方位角度转换为人类可红色,但在度数略小于360的情况下,转换不准确。

function azimutHuman(ang) {     //can be 0 - 360

    var azimuthHumans = [
              'Nord','Nord-NE','Nord-Est','Est-NE',
              'Est','Est-SE','Sud-Est','Sud-SE',
              'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
              'Ovest','Ovest-SO','Nord-Ovest','Nord-NO'];

    return azimuthHumans[ Math.round(ang/22.5) ];
}

例如:

azimutHuman(350);   //return undefined instead of "Nord"

2 个答案:

答案 0 :(得分:1)

350 - > 360 = 0-> 10:360为0,为0。

所以你需要再次添加一个元素“Nord”。现在这个函数:

function azimutHuman(ang) {     //can be 0 - 360

    var azimuthHumans = [
              'Nord','Nord-NE','Nord-Est','Est-NE',
              'Est','Est-SE','Sud-Est','Sud-SE',
              'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
              'Ovest','Ovest-SO','Nord-Ovest','Nord-NO','Nord'];

    return azimuthHumans[ Math.round(ang/22.5) ];
}

答案 1 :(得分:0)

Math.round(350/22.5) = 16索引16处的数组未定义。添加第16个元素,再次Nord应该