我瀏覽了一些stackoverflow中的問題,但無法獲得清晰的圖像。我正在研究一個iPhone應用程序,該應用程序涉及通過GPS獲取用戶位置,並根據我獲得的價值進行處理。我只是想確保我應該如何實現這一點?使用這種方法:iphone按時間間隔獲取用戶位置
[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秒鐘更新位置,但所有值保持不變(我嘗試打印經度,水平精度,高度,垂直精度等)。所以,請幫助我如何獲得每2分鐘確切的(至少有點準確,因爲我知道GPS不準確)用戶的位置。
而且我也想知道如何實現monitoringRegions和significantlocationchange事情。有沒有人成功實施它?我做不到。我沒有注意到任何改變(我在didEnterRegion中打印了一些東西,即使當我來回進出該區域時也從未打印過)。提前致謝。
這是兩個問題;你應該問兩個不同的問題。而你的監控區域太籠統 - 什麼都不起作用? 現在,回到你的主要問題:你是否在汽車/火車/巴士/飛機/船上測試這個,以便實際的位置每10秒會改變一次?如果您只是坐在辦公桌前,則GPS位置每次都是相同的(初始置零後)。 – Rayfleck
我應該問它作爲2個問題。無論如何,我不知道監控區域是如何工作的。就像它更新的頻率一樣?在移動的同時,考慮我們在10秒內穿越該地區(10秒內進入和退出),它會通知我嗎?我正在進出我的近似監測區域進行測試。 – Goku
你期望什麼水平的準確性?我不知道確切的限制,但100米可能接近。換句話說,GPS將無法確定(準確)您只移動了75米。 – Rayfleck