프로그래밍/Front end
[Front end] jQuery 16방위각 32방위각 표시
Reference M1
2019. 7. 12. 09:51
//16방위각 이름 초기화
/*var azimuthName = ['북', '북북동', '북동', '동북동',
'동', '동남동', '남동', '남남동',
'남', '남남서', '남서', '서남서',
'서', '서북서', '북서', '북북서'];*/
//32방위각 이름 초기화
var azimuthName = ['북', '북북북동', '북북동', '동북북동', '북동', '북동북동', '동북동', '동동북동',
'동', '동동남동', '동남동', '남동남동', '남동', '동남남동', '남남동', '남남남동',
'남', '남남남서', '남남서', '서남남서', '남서', '남서남서', '서남서', '서서남서',
'서', '서서북서', '서북서', '북서북서', '북서', '서북북서', '북북서', '북북북서'];
//방위각 초기화
var azimuth = [];
for (var i=0; i<azimuthName.length; i++) {
if (i == 0) {
azimuth[i] = 0;
} else {
//16방
//azimuth[i] = azimuth[i-1] + 22.5;
//32방
azimuth[i] = azimuth[i-1] + 11.25;
}
};
//방위각에 따른 index 반환
function setDirection(angle) {
angle = parseFloat(toZero(angle));
var index = 0;
for (var i=1; i<=azimuth.length; i++) {
if (azimuth[i-1] == angle) {
index = i-1;
break;
} else if (azimuth[i] == angle) {
index = i;
break;
}
if (azimuth[i-1] < angle && angle < azimuth[i]) {
var angle1 = angle - azimuth[i-1];
var angle2 = azimuth[i] - angle;
if (angle1 > angle2) {
index = i;
break;
} else {
index = i-1;
break;
}
}
}
return index;
}
function toZero(str) {
if (str == undefined) {
return 0;
} else if(str == 'undefined'){
return 0;
}
return str;
};
//azimuthName[setDirection(180)];
//$("#elementId").rotate(azimuth[setDirection(180)]);