2013/4/22記錄:git
self.locationManager= [[CLLocationManager alloc] init]; //位置管理器實例 locationManager.delegate = self; //設置委託 locationManager.desiredAccuracy = kCLLocationAccuracyBest; //設置請求制定精度級別,精度越高越耗電 [locationManager startUpdatingLocation]; //啓動
回調方法:spa
#pragma mark - #pragma mark CLLocationManagerDelegate Methods //當這個實施時下面那個就失效。 //- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ // //} - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { if (startingPoint == nil) //若是沒有開始座標,選擇剛定位到的座標做爲開始座標 self.startingPoint = newLocation; //緯度值 NSString *latitudeString = [NSStringstringWithFormat:@"%g\u00B0", newLocation.coordinate.latitude]; //「\u00B0」:角度符的Unicode表示形式 latitudeLabel.text = latitudeString; //經度值 NSString *longitudeString = [NSStringstringWithFormat:@"%g\u00B0", newLocation.coordinate.longitude]; longitudeLabel.text = longitudeString; //以coordinate爲中心的圓的半徑 NSString *horizontalAccuracyString = [NSStringstringWithFormat:@"%gm", newLocation.horizontalAccuracy]; horizontalAccuracyLabel.text = horizontalAccuracyString; //海拔 NSString *altitudeString = [NSStringstringWithFormat:@"%gm", newLocation.altitude]; altitudeLabel.text = altitudeString; //海拔方面的精度 NSString *verticalAccuracyString = [NSStringstringWithFormat:@"%gm", newLocation.verticalAccuracy]; verticalAccuracyLabel.text = verticalAccuracyString; //更新位置的時間戳 NSLog(@"%lf\n",newLocation.timestamp.timeIntervalSince1970); //兩位置距離 CLLocationDistance distance = [newLocation distanceFromLocation:startingPoint]; NSString *distanceString = [NSStringstringWithFormat:@"%gm", distance]; distanceTraveledLabel.text = distanceString; //中止 [self.locationManager stopUpdatingLocation]; } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSString *errorType = (error.code == kCLErrorDenied) ? @"Access Denied" : @"Unknown Error"; UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"Error getting Location" message:errorType delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil]; [alert show]; }