我浏览了stackoverflow中的一些问题,但我无法得到清晰的图片。我正在开发一个iPhone应用程序,它涉及通过GPS获取用户的位置并根据我获得的值进行处理。我只是想确保我该如何实现这个?使用此方法:
[locationManager startUpdatingLocation]
给了我准确的位置,但它经常不断更新,我不想要。我希望定期获取用户的位置。即每2分钟一次。我该如何实现?
我想到的方法(10秒间隔):
- (void)viewDidLoad {
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(theActionMethod) userInfo:nil repeats:YES];
}
并在计时器的操作方法中:
- (void)theActionMethod {
[locationManager startUpdatingLocation];
}
和方法didUpdatetoLocation:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
self.startingPoint = newLocation;
NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g\u00B0", newLocation.coordinate.latitude];
NSLog([@"Latitude : " stringByAppendingString:latitudeString]);
[latitudeString release];
[locationManager stopUpdatingLocation];
}
现在我得到的值始终保持不变。每隔10秒更新一次,但所有值都保持不变(我尝试打印经度,水平精度,高度,垂直精度等)。所以,请帮助我如何准确(至少有点准确,因为我知道GPS不准确)用户的位置每2分钟。
我还想知道如何实现monitoringRegions和significantlocationchange事项。有没有人成功实施过它?我不能这样做。我没有注意到任何变化(我在didEnterRegion中打印了一些东西,即使我来回进出该区域也从未打印过)。非常感谢。
答案 0 :(得分:2)
做你正在做的同样的事情。只需忽略委托方法,然后根据需要更改theActionMethod:
以使用locationManager.location
属性。