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

Javascript 精确地将方位角转换为人眼角度,javascript,human-readable,azimuth,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','

我正在编写这段代码,将方位角角度转换为人类可编辑的角度,但转换并不更精确,在角度略小于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"

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

350->360=0->10:360和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) ];
}