CLLocationDistance 메서드를 사용하여 모든 점대 점 거리를 더하고 (누적하여) gps 사용으로 총 거리를 계산하려면 아래 코드를 구현했습니다. 카운터 (_locManagerIteration)를 만들고 첫 번째 반복에서 첫 번째 locationManager 객체를 내 pastCoordinate 속성에 복사합니다. 다음 반복마다 CLLocationDistance 메서드를 사용하여 pastCoordinate 개체와 새 Loc 개체 사이의 지점 간 거리를 계산합니다. 프로그램 실행 중에는 _pointDistance 변수 (double)가 거리를 수집하고 있지만 총 거리 (_totalDistance) 변수 (double 값)는 _pointDistance 변수와 항상 동일하므로 누적 거리가 없습니다. 설명 할 수없는 이유로 인해 _totalDistance = _totalDistance + _pointDistance 문은 실행되지 않거나 _totalDistance 변수는 항상 0입니다. 아래의 두 NSLog 명령문 모두 같은 결과를 보여줍니다 ... 도와 주시겠습니까 ???CLLocationDistance 메서드가 거리를 누적하지 않습니다.
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
_locManagerIteration++;
CLLocation* loc = [locations lastObject];
if (_locManagerIteration == 1) {
self.pastCoordinate = [locations lastObject];
} else {
CLLocationDistance _pointDistance = [self.pastCoordinate distanceFromLocation:loc];
NSLog(@"POINT TO POINT DISTANCE = %f", _pointDistance);
_totalDistance = _totalDistance + _pointDistance;
self.pastCoordinate = [locations lastObject];
}
NSLog(@"TOTAL DISTANCE = %f", _totalDistance);
나는 많은 반복 (10 회 이상)을한다. 포인트 거리 (CLLocationDistance 방법으로 계산 한 값은 3에서 10 (미터) 사이입니다.) 실험은 집에서 수행되지만 차에서 앱을 사용할 때 결과는 동일합니다. XCODE의 버그? CLLocationDistance 호출에서 _poinDistance 변수 색상이 검은 색 (비 ivar)이고 NSLog를 통해 인쇄 할 때 변수 coror가 녹색으로 표시됩니다 (ivar 변수에 맞음). – DaliGR