-2
- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation {

    if (startingPoint == nil)
      self.startingPoint = newLocation


    CLLocationDistance distance = [newLocation
                                getDistanceFrom:startingPoint];



    NSString *distanceString = [[NSString alloc]
                                initWithFormat:@"%.2f Miles", totalDistance *0.000621371];
   DistanceTotal.text = distanceString;
}




@end

アプリケーション用の距離計算機を作成しています。アプリケーションを実行すると、テキストフィールドは距離情報なしで空白になります。問題を見つけるのを手伝ってくれませんか。(テキストフィールドは DistanceTotal と呼ばれます) ありがとうございます :)

4

2 に答える 2

2

累積距離を計算しようとしていますか? 開始点に近づくにつれて、開始点から現在の位置までの距離が短くなるはずです。

これは欲しいかも……。

// in the class containing the location manager
@property (nonatomic, assign) CLLocationDistance totalDistance;

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation {

   //if (startingPoint == nil)
   //    self.startingPoint = newLocation


   //CLLocationDistance distance = [newLocation
   //                               getDistanceFrom:startingPoint];

   if (!oldLocation)
       totalDistance == 0.0;
   else
       totalDistance += [newLocation distanceFromLocation:oldLocation];           

   NSString *distanceString = [[NSString alloc]
                                 initWithFormat:@"%.2f Miles", totalDistance *0.000621371];
   distanceTraveledLabel.text = distanceString;
}
于 2012-11-10T19:17:57.207 に答える
-1

locationManager からのすべてのコールバックで手動で :)

fullDistance = 0 ;//add it up
newDistance = GPS();//get with location
oldDistance

delta = abs(oldDist - newDist)
full += delta;

old = new
于 2012-11-10T19:21:52.343 に答える