위도, 경도에서 거리 범위 구하기
지금 프로젝트에서 구하려고 하는 범위내 음식점을 찾으려고 할 때 '범위'를 구하는 방법이 필요했다.
위에 그림을 보면 저 보라색 부분의 원을 어떻게 데이터를 처리 할 수 있을까에 대해 고민이 많았다.
그래서 우선 위도, 경도 좌표계에서의 공식이 있을꺼라 생각해 위키를 뒤져봤고
역시나 공식은 존재했다.
https://en.wikipedia.org/wiki/Geographical_distance
Geographical distance - Wikipedia
From Wikipedia, the free encyclopedia Jump to navigation Jump to search Distance measured along the surface of the earth Geographical distance is the distance measured along the surface of the earth. The formulae in this article calculate distances between
en.wikipedia.org
여기에는 많은 방법을 소개해주고 있는데 지구를 구형으로 가정하고 그 중에서 지도를 평면에 투영해 사용하는 Flat-surface Formulae를 사용하기로 했다. 유의사항은 경도는 극점에 특이점이 있고, 자오선+-180도에서 불연속성이 있다는데, 나는 우리나라에서 사용할 목적으로 앱을 만드는거니 굳이 신경쓰지 않아도 될 듯 했고, Critiation needed가 붙어있어 미심쩍긴하지만 작은 거리를 계산할 때는 괜찮은 정확성을 보여준다고 해서 이 공식을 채택하기로 했다.
Latitude, Longitude는 다음과 같다.
공식은 다음과 같다.
여기까진 좋았는데 이걸 이용해서 어찌 범위를 구해야 할 지 막막하더라. 그래도 계속해서 생각해봤는데 어처피 내가 구하려고 하는 것은 '범위' 내의 음식점이므로 위도나 경도의 변화값 중 하나를 0으로 잡고 생각해도 되지 않을까 하는 생각이 들었다.
위와 같은 생각 끝에 다음과 같이 식을 전개했다.
저 두번째 기호 말고는 프로그램 내에서 전부 알 수 있는 값이니까 위의 공식을 이용해서 범위를 구하면 될 것 같다.
일단 해보고 오차가 크다 싶으면 다른 공식을 사용해서 풀어봐야겠다.