두 지점 목록 사이의 거리 (위도, 경도 기준)를 계산하는 방법 (가급적 Excel에서)이 있습니까?
예를 들어, 나의 최종 목표는 스타 벅스 목록과 맥도날드 목록을 보유한 다음 가장 가까운 이웃을 표시하는 것입니다.
댓글
- ' 최소 거리를 찾고 있습니다.
- 어느 단위로 거리를 반환합니까?
- @Jeed 어떤 단위라도 괜찮을 것입니다. 아마도이 경우 마일입니다.
Answer
지리 좌표 쌍 목록이 제공되면 Haversine 수식 Excel에서 직접.
이 공식을 사용하는 가장 간단한 방법 (또는 더 정확하지만 귀하의 경우가 아니라고 생각합니다)은 VBA 편집기를 열고 Insert --> Module
를 클릭 한 다음 (복사 및) 붙여 넣기를 클릭합니다. blah238이 친절하게 제안한 코드 입니다.
Public Function getDistance(latitude1, longitude1, latitude2, longitude2) earth_radius = 6371 Pi = 3.14159265 deg2rad = Pi / 180 dLat = deg2rad * (latitude2 - latitude1) dLon = deg2rad * (longitude2 - longitude1) a = Sin(dLat / 2) * Sin(dLat / 2) + Cos(deg2rad * latitude1) * Cos(deg2rad * latitude2) * Sin(dLon / 2) * Sin(dLon / 2) c = 2 * WorksheetFunction.Asin(Sqr(a)) d = earth_radius * c getDistance = d End Function
스프레드 시트에서 사용할 수있는 새로운 사용자 정의 getDistance
함수 (단위 = 킬로미터)가 있습니다. 매개 변수, 즉 두 쌍의 좌표는 다음과 같습니다.
getDistance(latitude1, longitude1, latitude2, longitude2)
여기서 latitude1, longitude1, latitude2, longitude2
는 상대적 셀 참조.
댓글
- 직접 링크 : codecodex.com/wiki/ …
- @ blah238 제안 해 주셔서 감사합니다. ' 작동을 위해 간단한 방법을 추가했습니다.
- @afalciano & 코드. 내 질문은이 방정식의 궁극적 인 단위는 무엇입니까? 미터입니까?
- @Kerry It ' s 킬로미터입니다. 또한 수식에 " Sqr "가 표시되는 경우 " Sqrt ".
- 거리 측정 단위는 지구 반경과 마찬가지로 킬로미터입니다.
답변
h2>
더 정확한 방법은 Vicenty “s 수식을 사용하는 것입니다.이 수식은 하지만 도시에서 일하는 경우 이전 답변이 제대로 작동합니다 (귀하의 경우 차이점은 무시할 수 있음). 여기
에서 Excel VB 코드를 찾았습니다. a> 혹시라도.
도시에서 일하는 경우 “새 비행”거리를 사용하는 것은 오해의 소지가 있습니다. 네트워크 거리를 사용하는 것이 좋습니다. 절충안은 “Manhattan distance”를 사용하는 것입니다.