2010-03-11 64 views
0

如何在我的應用中自動縮放我的userLocation上的地圖? 我有以下代碼zomm在地圖上,但我必須放大userLocation和下面的代碼放大總是非洲?放大用戶位置

MKCoordinateRegion zoomIn = mapView.region; 
    zoomIn.span.latitudeDelta *= 0.2; 
    zoomIn.span.longitudeDelta *= 0.2; 
    zoomIn.center.latitude = mapView.userLocation.location.coordinate.latitude; 
    zoomIn.center.longitude = mapView.userLocation.location.coordinate.longitude; 
    [mapView setRegion:zoomIn animated:YES]; 

回答

2

OK我解決了這個問題,用下面的委託方法:

-(void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views{ 
    for(MKAnnotationView *annotationView in views) { 
     if(annotationView.annotation == mv.userLocation){ 
      MKCoordinateRegion region; 
      MKCoordinateSpan span; 

      span.latitudeDelta=0.9; 
      span.longitudeDelta=0.9; 

      CLLocationCoordinate2D location =mv.userLocation.coordinate; 

      location = mv.userLocation.location.coordinate; 

      region.span = span; 
      region.center = location; 
      [mv setRegion:region animated:TRUE]; 
      [mv regionThatFits:region]; 
     } 
    } 
} 
2

非常感謝隊友,這幫助了我很大的。真的想投票,但不能因爲我的代表級別。

我還發現,使用:

mapView.userLocation.location.coordinate.latitude; 

總是放大我去非洲,決不中心我到我的當前位置。

但是,通過使用委託方法:

-(void)mapView:(MKMapView *)myMapView didAddAnnotationViews:(NSArray *)views { 

我是能夠成功地解決這個問題。我發現當使用mapView.userLocation.location.coordinate.latitude;在viewDidLoad方法在視圖啓動時沒有觸發正確的用戶座標系,因此它顯示錯誤的座標。

+0

爲了新手的利益:有時當它工作正常時,它可能仍然從大西洋離開非洲海岸,因爲你在模擬器中運行它,位置(在調試下)設置爲無 – aremvee 2014-09-25 12:23:51