3

デバイスの速度 (メートル/秒) を取得する必要があります。これは私のコードで、速度は常に 0 です。理解できません。

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

        double gpsSpeed2 = newLocation.speed;

        labelm.text = [NSString stringWithFormat:@"%f",gpsSpeed2];
    }



locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

ありがとう

4

2 に答える 2

1

これまでに試したことはありませんが、ロケーション マネージャーで distanceFilter を 1 メートルなどの数値に設定して時間を計算すると、おそらく改善されます。次に速度を計算します。

于 2010-07-23T08:29:54.570 に答える
-1

計算は自分で行う必要があります。このようなもの:

if (oldLocation != nil)
{
   CLLocationDistance distance = [newLocation getDistanceFrom:oldLocation];
   NSTimeInterval timeElapsed = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];

   // Use distance and timeElapsed to calculate speed
}
else {
   // We don't have and old time, so can't calculate speed
}    

oldLocation = [newLocation retain];
于 2010-07-23T08:28:20.390 に答える