6

如何计算设备上的实时速度?我用谷歌搜索了很多,但我得到的只是在完成旅程后计算距离和速度。我可以在运行时计算速度吗?

建议将不胜感激。

提前致谢。

4

2 回答 2

2

这里CLLocationManager的类提供不同的位置字段,如纬度、经度、准确性和速度。

我用它CoreLocationController来更新位置,我称之为波纹管方法,你可以在- (void)locationUpdate:(CLLocation *)location 方法中获得当前速度,如下所示

  - (void)locationUpdate:(CLLocation *)location
{
     NSString *currentspeed = [NSString stringWithFormat:@"SPEED: %f", [location speed]];
}

或者下面是委托方法

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"in update to location");
    NSString *currentspeed = [NSString stringWithFormat:@"SPEED: %f", [newLocation speed]];
}

您也可以从此链接获取示例... http://www.vellios.com/2010/08/16/core-location-gps-tutorial/

我希望这对你有帮助...... :)

于 2012-08-24T09:54:39.100 回答
0

有一个委托CLLocationManagerDelegate将其添加到您的控制器头文件中。

初始化位置管理器并设置委托,您在其中实现位置管理器的委托方法,如下所示

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self; // send loc updates to current class

你可以在你的课堂上写方法

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    NSLog(@"Location Speed: %f", newLocation.speed);
}

就是这样,您将通过上述方法以速度获取您的位置更新,并且它将尽可能频繁地触发。

于 2012-08-24T09:54:50.387 回答