4

我没有将其用于行车路线或类似情况。我有一些注释,当用户在其中一个附近时想要一个触发器,所以我可以提醒用户。

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

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

4

1 回答 1

5

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

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将不会被调用。您唯一能做的就是像我在示例中所做的那样设置distanceFilterand以提供最高的准确性。desiredAccuracy

更新

使用 kCLLocationAccuracyBest 而不是 kCLLocationAccuracyNearestTenMeters 以获得更高的准确性。

于 2010-08-03T07:41:30.150 回答