2013-03-04 77 views
0

我使用MKMapView來顯示我的當前位置,我發現當我什麼都不做時,看到藍色圓圈和點需要大約15秒以上在地圖視圖中,但如果我在地圖視圖開始定位後移動地圖,則藍色圓圈和點將立即顯示(現在不需要5秒鐘),它們之間有什麼不同?我可以縮短在編碼中顯示藍色圓圈的時間嗎?非常感謝如何減少顯示藍色圓圈和點的時間MKMapView

我創建地圖

self.runMapView = [[[MKMapView alloc] initWithFrame:self.bounds] autorelease]; 
     self.runMapView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 
     self.runMapView.showsUserLocation = YES; 
     runMapView.delegate = self; 

然後:

- (void)mapView:(MKMapView *)mapView_ didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    if (loc2 == nil)//loc 2 is the ivar i used to track my first location 
    { 
     if (CLLocationCoordinate2DIsValid(userLocation.location.coordinate)) 
     { 
      self.loc2 = userLocation.location; 

      MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.location.coordinate, 2000, 2000); 
      [runMapView setRegion:region]; 
     } 
    } 

} 

和我添加一些polylineview地圖,當我加在的MapView到視圖CTRL的看法開始,mapview的alpha設置爲0(因爲我有一個按鈕來決定顯示或隱藏mapview),我不知道如果地圖更新位置在後面可以導致這個問題?

+0

我看到我的第一第二應用藍點,圓圈顯示horicontal精度可能會晚一點。 – AlexWien 2013-03-04 03:29:35

+1

你可以顯示一些你的代碼。在地圖移動或加載頁面顯示用戶位置後,您可能會做某些事情。總的來說,開發人員無法做任何事情來加速這個過程,一旦地圖是舊的,它需要顯示用戶的位置到iOS,以便爲你獲取,而你不能改變它。你可以做的是改變你的應用程序要求的位置,也許你太晚了,但我們不能看到沒有你的代碼。 – Craig 2013-03-04 03:31:08

+0

好的,我已經發布了相關的代碼,請看看 – ximmyxiao 2013-03-04 03:58:04

回答

0

創建位置管理一個變量, 你只需要的MapView以下更新位置信息初始化是這樣的:

self.runMapView = [[[MKMapView alloc] initWithFrame:self.bounds] autorelease]; 
    self.runMapView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 
    self.runMapView.showsUserLocation = YES; 
    self.runMapView.delegate = self; 
    [self.locationManager startUpdatingLocation]; 
相關問題