iphone获取当前移动速度

 有时候我们需要获取iphone当前的移动速度,比如导航软件。 虽然无法有直接的api, 但是我们可以使用定位功能中的某些接口和参数来算出当前的速度。 具体方法如下:


  1. 先启动定位功能

 

self.locManager = [[[CLLocationManager allocinitautorelease];

if (!self.locManager.locationServicesEnabled)   //检测是否开启定位服务

{

return;

}

self.locManager.delegate = self;

self.locManager.desiredAccuracy = kCLLocationAccuracyBest;  //设置最高的精度

[self.locManager startUpdatingLocation];     //开始定位



2. 根据回调参数和数据计算速度

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

{

if (newLocation.horizontalAccuracy < kCLLocationAccuracyHundredMeters)   

{

if (self.lastAccurateLocation)

{

NSTimeInterval dTime = [newLocation.timestamp timeIntervalSinceDate:self.lastAccurateLocation.timestamp];   //计算和上次的时间差

float distance = [newLocation getDistanceFrom:lastAccurateLocation];   // 获取相比上次,已经移动的距离

if (distance < 1.0freturn;

aggregateDistance += distance;


float  speed = 2.23693629 * distance / dTime;   //计算出速度

NSString *reportString = [NSString stringWithFormat:@"Speed: %0.1f miles per hour. Distance: %0.1f meters."2.23693629 * distance / dTime, aggregateDistance];


}

self.lastAccurateLocation = newLocation;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值