2010-08-02 116 views
0

我需要检测iphone的小位置变化,我尝试了称为定位我的样本,但它不能识别位置的小变化。有没有办法做到这一点?小位置变化检测

在此先感谢。

问候 约翰

+0

GPS准确度并不那么精确 - 您可以使用加速度传感器吗? – Justin 2010-08-02 13:15:21

+0

你想要多少准确度?当定位精度设置为最佳时,GPS在定位用户方面做得很好。 – 2010-08-02 13:33:03

+0

@Justin,我如何使用加速度计来确定距离? – 2010-08-03 07:41:32

回答

0

是多么小的变化,你期望?

也许你应该将精度设置为最大值并计算委托方法的位移。

配置位置管理器给你它是最好的。


    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
    [locationManager setDistanceFilter:0.0]; 

,然后委托方法:


- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    // Calculate the distance between the two locations 
    CGFloat distance = [newLocation distanceFromLocation:oldLocation]; 

    if (distance >= MIN_DISPLACEMENT) { 
     // Do something 
    } else { 
     // Do something 
    } 
} 

从位置管理器获得更准确的数据,设置适当的键上的Info.plist UIRequiredDeviceCapabilities(位置服务,GPS)。

+0

我试过这个解决方案,但我需要实时更新距离,GPS需要时间来获取距离,这是不适合我的应用程序。 – 2010-08-22 16:22:17

+0

@John,如果您需要实时更新,您需要利用加速度计或(在iOS4上)http://developer.apple.com/iphone/library/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MotionEvents/MotionEvents。 HTML#// apple_ref/DOC/UID/TP40009541-CH4-SW26 – vfn 2010-08-23 03:28:32