2016-09-30 55 views
2

我正在離線應用程序,我必須顯示用戶旅行的路徑,我正在使用MKMapview。每當我從didUpdateLocations方法獲得CLLocation座標時,它都顯示出令人滿意的結果bcoz如果用戶位置在路上,那麼它顯示了一些遠處的位置,假設建築物位置,並且繪製完整的用戶旅行路徑,那麼該路徑將交叉這麼多建築物,但用戶已經在公路上行駛,而不是在建築物上。那麼有什麼方法可以糾正這個位置座標(不使用互聯網),以便它能夠顯示確切的位置。CLLocation不顯示準確結果


如果沒有辦法做到這一點,那麼其他的出租車應用程序如何顯示駕駛員當前的道路位置。我不想爲此使用Google Map。

+0

你使用kCLLocationAccuracyBest? – Rob

+0

是的, locationManager.desiredAccuracy = kCLLocationAccuracyBest; –

+0

然後你可以嘗試kCLLocationAccuracyBestForNavigation ..或者你可以閱讀這個答案:http://stackoverflow.com/a/1197775/3108877 – Rob

回答

0

位置管理器將返回多個位置。您可以添加一些代碼來檢查返回的位置是否足夠適合您。這裏是一個例子:

-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations 
{ 
    if([locations lastObject].horizontalAccuracy <= (some number)) 
     [locationManager stopUpdatingLocation]; 
} 
+0

我已經在我的應用程序中使用此代碼 if(newLocation.horizo​​ntalAccuracy <= 0) { return; } 我也在使用位置年齡驗證。 NSTimeInterval locationAge = - [newLocation.timestamp timeIntervalSinceNow]; 如果(locationAge> 6.0){ 返回 ; } –