개인적인 프로그램

위경도 이슈

삽지리 2019. 12. 10. 10:38

위도는 -90(남반구) ~ +90(북반구) 

경도는 -180~+180까지임

위도는 문제가 없는데 경도가 문제

왼쪽으로 갈수록 경도가 작아지는데

-179에서 왼쪽으로 가면 -180 더 왼쪽으로 가면 +180이 된다.

그러므로 범위를 잡을때 sw(south west) ne(north east)를 기준으로 범위를 잡을때

한좌표가 범위안에 속하는지 여부에 대한 계산이 복잡해짐

 

 보통은

 

-30, -30 ~ +40, 40

이런식으로 범위가 잡힐텐데

-30, +178 ~ 40 , -178

처럼 위도의 경우 w값이 양수고 east값이 음수인 경우도 발생함

 

 

그래서 아래와 같이 체크해야됨

function test(point,west,east){
	
	if(west <= east){
		if(point >= west && point<=east){
			return true;
		}else{
			return false;
		}
	}else{
		if(point >= west || point <= east){
			return true;
		}else{
			return false;
		}
	}

}


console.log(test(1,2,3) == false);
console.log(test(1,-10,3) == true);
console.log(test(1,178,-178) == false);
console.log(test(179,178,-178) == true);
console.log(test(-179,178,-178) == true);