2010-02-01 3 views
7

위도와 경도에 관한 질문입니다. 아마도 바보 같을 것입니다.가장 가까운 위도와 경도를 찾으십시오

내가 위도와 다양한 locations.And에 대한 경도의 집합을 가지고, 나는에서 오전되는 위치의 위도와 경도를 가지고있다.

을 지금, 나는이에서 내 위치에서 가까운 장소를 찾을 수있다 내가 가지고있는 위도와 경도의 집합. 그대는 그것을 계산하는 특별한 방법입니까 아니면 단순한 뺄셈이며 그 차이를 확인하는 것입니까?

제발 이것 좀 비춰 주시겠습니까?

감사합니다, J

+1

SO의 검색을 원할 수도 있습니다. 기존의 답변이 많이 있습니다. 예 : http://stackoverflow.com/questions/27928 및 http://stackoverflow.com/questions/23569/calculating-distance-between-2-cities 및 – Rosstified

답변

8

그것은 포인트가 배치 방법에 따라 달라집니다.

예 : 대부분의 포인트가 주차장에있는 경우 Euclidean Distance이 잘 작동해야합니다.

다른 경우 - Geodesic Distance을 계산해야합니다. 이 link은 더 많은 정보를 제공합니다.

십진법 형식에서 학위 - 분 - 초 형식으로의 변환은 conversion이고 그 반대의 경우도 마찬가지입니다.

건배

+0

안녕 Andriyev, 주셔서 감사합니다. 내 위도와 경도는 모두 "13.048869"의 형식입니다. "53 09 02N"형식으로 변환 할 수있는 방법이 있습니까? 미안 그것의 방법이 너무 바보 같으면. 감사합니다. J – Abhishek

+0

@jadaaih - 귀하의 위도/경도는 10 진수 형식입니다. 귀하가 찾는 전환에 관한 링크로 응답을 업데이트했습니다. – Arnkrishn

+0

감사합니다. – Abhishek

4

이 SQL을 사용할 수 있습니다. DB 항목에서 가장 가까운 Lat, Lng를 선택합니다.

SELECT ID, 위도, LNG ((ACOS (SIN (your_lat의 *의 PI()/180) * SIN (북 * PI()/180 ) + COS (your_lat의 *의 PI()/180) * COS (북 * PI()/180) * COS ((your_long - LNG) * PI()/180)) * 180/PI()) * 60 * 1.1515) distance AS your_table_name FROM distance < 갖는 = ' 10 'distance ASC의 LIMIT BY 주문이 도움이 될 것 0,10

희망.

+0

단위로 구현해야합니까? – goto

+0

단위는 마일입니다. 거리를 킬로미터로 얻으려면 "[...] 60 * 1.1515 [...]"라는 용어에 1.609344 (km에서 1 마일)를 곱해야합니다. "[...] 60 * 1.1515 * 1.609344 [...] ". – user1337

관련 문제