2011-04-05 3 views
5

여기는 처음 질문을 게시 한 것이지만 다른 사람들의 질문에 많은 도움을 얻었습니다.-distanceFromLocation의 CLLocation 개체 순서 :

제 질문은 -distanceFromLocation:의 기능을 CLLocation이라고합니다. 나는 A 지점과 B 지점 사이의 거리를 찾는 것이 B 지점과 A 지점 사이의 거리와 같다고 생각했지만, 그렇지 않은 것으로 나타났습니다. 난 아주 간단한 경우에 검사를하지 : 이것에

CLLocation *test1 = [[CLLocation alloc] initWithLatitude:37.529530 longitude:-122.259232]; 
CLLocation *test2 = [[CLLocation alloc] initWithLatitude:47.900002 longitude:-103.495102]; 
NSLog(@"%f vs %f",[test2 distanceFromLocation:test1],[test1 distanceFromLocation:test2]); 
[test1 release]; 
[test2 release]; 

출력은 1907269.942754 대 1908105.959114, 약 900m의 차이였다.

900 미터가 작은 비율 일지 모르지만 사용자가 주석보다 더 가까운 지 확인하고 900 미터가이를 변경할 수 있는지 확인하려고합니다.

내 질문에,이 값 중 어느 것이 맞을 까? 또한 내가 테스트하는 위치가 중요한 경우 항상 동일한 위치 (예 : 목적지와 사용자의 목적지, 사용자의 목적지가 아닌 목적지의 주석 및 목적지의 주석)에 대해 테스트해야합니까?

내 프로젝트가 다소 커서 미안하지만이 샘플은 문맥이 맞지 않아 미안합니다. 이것이 나에게 상당히 혼란과 좌절감을 안겨 주었기 때문에 어떤 도움을 주셔서 감사하겠습니다.

답변

1

관찰중인 오류는 2000 년에 1 부분입니다.이 방법에 사용 된 알고리즘은 속도에 최적화되어 있으므로 거리에서 위치 목록을 정렬하는 것이 밀리미터보다 정확하지 않고 빠릅니다.

정확한 결과가 필요한 경우이 방법을 사용하지 말고 다른 방법을 찾으십시오. 재현 가능한 결과가 필요하면 정의 된 방법으로 인수를 정렬하십시오. 항상 낮은 위도에서 시작하십시오.