2012-02-18 5 views
1

내 iPhone 응용 프로그램에는 약 800 개의 지리적 좌표가 플랫 파일로 있습니다. 나는 현재의 사용자 위치를 취할 알고리즘을 찾고,이 800 개의 좌표를 모두 통과하고 10 마일 부근에있는 좌표만을 가져 오는 효과적인 방법을 찾고있다. 이것이 얼마나 효과적일까요? 또한이 배후에있는 수학에 대한 기본적인 이해를 얻을 수있는 링크를 공유하십시오.내 현재 GPS 위치에 가장 가까운 좌표 찾기

+1

당신은 아마 그들이 간단한 예제를 제공하는이 질문에 http://stackoverflow.com/questions/913576/finding-the-closest-point-to-a-given-point를 볼 수 있습니다 Objective-C로 작성되었습니다. –

+0

당신은 연결된 질문과는 다른 문제가 있다고 생각합니다. 가장 가까운 _을 찾으려고하고 있으며, 지정된 거리 내에서 _all_을 찾으려고합니다. 맞습니까? – sarnold

답변

4

여기에 link은 OP의 최종 코드가 좌표로 위치를 만드는 방법과 그 거리를 계산하는 방법을 이해하는 데 도움이되는 질문입니다. 여기

는 위치 만드는 방법입니다 :

CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude]; 

을 그리고 여기에 두 위치 사이의 거리를 찾는 방법입니다 : 당신이 위치를 정렬 할 필요가 없습니다 그러나

CLLocationDistance distance = [locationA distanceFromLocation:locationB]; //CLLocationDistance is a double 

. 루프를 반복하고 배열에 가까운 위치를 추가하십시오.

2

먼저, 모든 사람들이 거리 계산에 동의한다고 생각합니다. Haversine 함수를 사용해야합니다.

Finding the closest point to a given point

검색 시간이 문제가 (당신이 언급 한 800 데이터 포인트의 반복) 다음 방법에 대한 는 2D 해시 경우? 위도/경도를 기반으로 버킷 또는 지역에 데이터 세트를로드하기 만하면 전체 데이터 세트를 검색 할 필요가 없으며 일치 항목이 포함될 수있는 버킷 만 검색 할 수 있습니다. 이 아니지만

Good hash function for a 2d index

+0

그게 정확하게 내가 뭘 찾고 있었는지 고맙다고 .. – dreampowder

+0

만약 내가지도에 10 점. 그리고 주어진'target '점에 가장 가까운 점을 찾고 싶습니다. 그리고 나는 나의 통치자를 꺼내어 '목표'에서 각 지점까지의 거리를 계산합니다. 가장 가까운 지점을 찾을 수 없을까요? 왜 내가 호버슨을 필요로 하죠? – dimitris93

관련 문제