Fer*_*and 9 iphone performance objective-c cllocation ios
我正在开发GPS应用程序.你知道如何检测移动设备的速度吗?
实际上,我需要每2秒检测一次速度.
我知道didUpdateToLocation
当位置改变时调用方法.
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
Run Code Online (Sandbox Code Playgroud)
但我认为这种方法不适合我的问题.
那么,我需要[CLLocationManager location]
在2秒内检查速度吗?
有什么建议吗?
提前致谢.
小智 27
下面的代码如何使用委托方法.或者,如果您确实想要轮询,则保留您之前的位置并检查距离上次轮询更改的距离,并使用手动方法(也如下所示)计算速度.
速度以m/s计算/提供,因此对于kmph乘以3.6或对于mph乘以2.23693629.
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
//simply get the speed provided by the phone from newLocation
double gpsSpeed = newLocation.speed;
// alternative manual method
if(oldLocation != nil)
{
CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation];
NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp];
double calculatedSpeed = distanceChange / sinceLastUpdate;
}
}
Run Code Online (Sandbox Code Playgroud)