我的應用程序有一個MKMapView
。這是iOS6。MKMapview ios在第一次加載應用程序時不顯示當前位置
-(void)viewDidLoad
{
.....
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSLog(@"Update locations is hit");
NSLog(@"379 the locations count is %d",locations.count);
CLLocation *obj = [locations lastObject];
NSLog(@"the lat is %f", obj.coordinate.latitude);
NSLog(@"the long is %f", obj.coordinate.longitude);
NSLog(@"the horizontal accuracy is %f",obj.horizontalAccuracy);
NSLog(@"the vertical accuracty is %f",obj.verticalAccuracy);
if (obj.coordinate.latitude != 0 && obj.coordinate.longitude != 0)
{
CLLocationCoordinate2D currrentCoordinates ;
currrentCoordinates.latitude = obj.coordinate.latitude;
currrentCoordinates.longitude = obj.coordinate.longitude;
}
....more computation
[locationManager stopUpdatingLocation];
}
當我第一次加載應用程序時,我的位置顯示很少。幾英里遠。我也有重置位置按鈕,如果我點擊該地圖顯示正確的位置。這是我在重置位置按鈕點擊:
- (IBAction)btnResetLocationClick:(UIButton *)sender
{
locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
[locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager startUpdatingLocation];
}
那麼我該如何使應用程序獲得正確的當前位置加載本身。有沒有辦法讓應用程序告訴地圖等待幾毫秒然後更新。還是有其他想法?請告訴我。如果您需要更多信息,請詢問。謝謝。
謝謝。那麼我採取的座標,並將它們傳遞給一個方法,我形成一個MKMapView並設置其座標。我還記錄了垂直和水平精度。他們一致地出來-1和5。我正在調試,並且我在didUpdateLocations中放置了一個斷點,並且-1和5保持了日誌記錄。如果兩個精度都大於0? – RookieAppler
@ Rob.What我可以做些什麼使他們大於0. – RookieAppler
@Phanindar水平(經度和長期的準確性)是否定的?還是垂直(高度)爲負?你可能不關心後者(雖然我不確定它是如何得到高度,如果它不知道你在哪裏),但前者是非常重要的。我猜你只是沒有獲得一個好的GPS信號(因此我建議嘗試開啓wifi,或者如果你開啓了它,關掉它)。 – Rob