CLLocationManager - 计算iPhone上的实时速度

时间:2012-08-24 09:12:57

标签: ios real-time cllocationmanager

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

建议将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

此处CLLocationManager类提供不同的位置字段,如纬度,经度,精度和速度。

我使用CoreLocationController所以对于位置更新我称之为下方法 您可以在 - (void)locationUpdate:(CLLocation *)location 方法中获得当前速度,如bellow

  - (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/

我希望这有助于你...... :)

答案 1 :(得分: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);
}

这就是你在上面的方法中也会以速度获得你的位置更新,它会尽可能频繁地触发。