iOS查找平均速度
Posted
技术标签:
【中文标题】iOS查找平均速度【英文标题】:iOS find average speed 【发布时间】:2014-03-08 20:41:15 【问题描述】:我已经有一些东西可以显示我当前的速度和最高速度(下面代码中的最大速度)现在我想做一些东西来计算我的平均速度和核心位置。如何?谢谢。
- (void)locationUpdate:(CLLocation *)location
speedLabel.text = [NSString stringWithFormat:@"%.2f", [location speed]*2.236936284];
这是最高速度的浮动
float currentSpeed = [location speed]*2.236936284;
if(currentSpeed - maxSpeed >= 0.01)
maxSpeed = currentSpeed;
maxspeedlabel.text = [NSString stringWithFormat: @"%.2f", maxSpeed];
【问题讨论】:
保留当前速度列表并取平均值。 【参考方案1】:声明变量是你的 *.m 类
@implementation your_class
CLLocationDistance _distance;
CLLocation *_lastLocation;
NSDate *_startDate;
在您的 init
或 viewDidLoad
方法中将它们设置为初始值
_distance = 0;
_lastLocation = nil;
_startDate = nil;
将locationUpdate:
更改为
- (void)locationUpdate:(CLLocation *)location
speedLabel.text = [NSString stringWithFormat:@"%.2f", [location speed]*2.236936284];
if (_startDate == nil) // first update!
_startDate = location.timestamp;
_distance = 0;
else
_distance += [location distanceFromLocation:_lastLocation];
_lastLocation = location;
NSTimeInterval travelTime = [location.timestamp timeIntervalSinceDate:_startDate];
if (travelTime > 0)
double avgSpeed = _distance / travelTime;
AVGspeedlabel.text = [NSString stringWithFormat: @"%.2f", avgSpeed];
NSLog(@"Average speed %.2f", avgSpeed);
重置平均速度
_startDate = nil;
_distance = 0;
【讨论】:
我如何将平均速度放入标签中? 我也想用一个按钮重置它,我该怎么做? 谢谢,还有一个小问题,我该把声明放在哪里? 有几种可能性。其中之一 - 在更新的答案中。 我遇到了崩溃,这与此有关:double avgSpeed = _distance / [location.timestamp timeIntervalSinceDate:_startDate];【参考方案2】:记住您与时间在一起的第一个位置。然后计算
CLLocationDistance dist = [location distanceFromLocation:initialLocation];
NSTimeInterval time = [location.timestamp timeIntervalSinceDate:initialDate];
double averageSpeed = dist/time;
// If you want it in miles per hour:
// double averageSpeed = dist/time * 2.236936284;
【讨论】:
我如何将平均速度放入标签中? 我也想用一个按钮重置它,我该怎么做? @msweet168:您将其放入标签中,就像使用当前或最大速度一样:averageLabel.text = [NSString stringWithFormat:@"%.2f", averageSpeed]
。您可以通过将initialLocation
和initialDate
重置为当前位置和时间戳来重置它。
我如何声明这个,我把它放在哪里?\
@MartinR averageSpeed
的值是m/s,对吧?以上是关于iOS查找平均速度的主要内容,如果未能解决你的问题,请参考以下文章