지리적 포인트 (위도와 경도는 십진수 값) 인 데이터베이스 테이블을 약 1000 포인트 내 안드로이드 애플리케이션에 가지고 있습니다. 그리고 주어진 지리적 위치에 가장 가까운 20 점을 선택해야합니다.다음 N 가까운 지오 포인트 얻기
나는 2 개의 지리적 포인트 사이의 거리를 계산하는 방법에 대한 답변을 Stackoverflow에서 발견했으며 내 쿼리를 작성할 때까지 매우 행복했습니다. 나는 안드로이드의 내장 sqlite에서 trignometrical 함수를 사용할 수 없다는 것을 알아 냈습니다.
하지만 아이디어가 있습니다. 나는 거리를 계산할 필요가 없다. 가까운 지점은 다른 지점으로, 지리적 좌표의 작은 차이가 있어야합니다.
어떻게이 사실을 사용할 수 있습니까? lat_0과 lon_0이 주어진 점의 지리 좌표 인 곳에 (lat_0 - lat_n)^2 + (lon0 - lon_n)^2만큼 저장된 점을 주문하는 것만으로도 충분합니까?
는뮤르
그래서, 내 질문에 대한 답을 얻을 수있는 가장 좋은 방법은 내가 위에서 설명하는 방법을 테스트했다 UPD를 주셔서 감사합니다.
꽤 잘 작동하지만 정확한 거리와 정확히 일치하지는 않습니다.
거리를 계산하기 만하면이 솔루션은 괜찮습니다.하지만 제 경우에는 거리별로 스테이션을 주문해야하므로이 솔루션을 사용할 수 없습니다.
John CashCommons와 Philip에게 감사드립니다. 고마워요
독일과 같은 국가에 있다면 어떻게 될까요? – Tima
위도 1 마일! = 1 마일 (경주에서 제외) – Philip
아마 그렇게 될 것입니다. 이 문제는 비행기의지도 왜곡에서 비롯됩니다. 예를 들어 메르카토르 투영의 경우 극에 가깝게 설정하면 축소됩니다. 남극 대륙은 평면지도처럼 크지는 않습니다. ;) – John