iphone - 如何每 4-5 秒获取距用户位置的距离

标签 iphone mapkit userlocation

我不会将其用于行车路线或类似用途。我有一些注释,并且希望当用户位于其中之一附近时触发,这样我就可以提醒用户。

似乎每次 startUpdatingLocation 调用只调用一次 didUpdateToLocation?至少当我在该方法中 NSLog 时,我只在控制台中得到一行。不,我不会带着 iPhone 到处走。

那么:设置对用户位置的连续监控并获取“回调”(当 3-4 秒过去或当用户移动(例如 10 米)时)的正确方法是什么?

最佳答案

您可能知道,这是初始化和启动位置管理器的代码:

locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; 
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];

并像这样实现didUpdateToLocation:

- (void) locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*) oldLocation 
{
   // This will be called every time the device has any new location information. 
}

每次位置有更新时,系统都会调用didUpdateToLocation。如果系统没有检测到位置的变化,didUpdateToLocation将不会被调用。您唯一能做的就是像我在示例中所做的那样设置 distanceFilterdesiredAccuracy 以获得最高的准确度。

更新

使用 kCLLocationAccuracyBest 代替 kCLLocationAccuracyNearestTenMeters 以获得更高的准确性。

关于iphone - 如何每 4-5 秒获取距用户位置的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3394431/

相关文章:

ios - 我如何编写iphone 3.5英寸屏幕和4英寸屏幕的代码

ios - 在 calloutAccessoryControlTapped 上检测仅点击 rightCalloutAccessoryView

ios - MK坐标跨度制作: why specify longitude AND latitude delta?

ios - regiondidchange 在 app load swift 上多次调用

ios - MKMapKit不显示userLocation

ios - 登录和注销捕获基于 ios 中的位置

iphone - 将 TTTableViewController(来自 Three20)添加到另一个 UIViewController

iphone - ios - 如何找到 UITextView 中文本的可见范围?

iphone - 使用 Application Loader 上传 IPA

iPhone 应用程序在表格中显示 field 距离