2012-07-08 36 views
0

當我加載我的mapView時,我只有一個刻度 - 用戶位置。一些行動後,我添加更多的針。但重點仍在用戶位置。我想放大圖像以查看所有目標。我怎樣才能做到這一點? 我的代碼:添加新引腳後更改區域

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views { 
    if (views.count == 1) { 
     MKAnnotationView *annotationView = [views objectAtIndex:0]; 
     id<MKAnnotation>mp = [annotationView annotation]; 
     MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 500, 500); 
     [mapView setRegion:region animated:YES]; 
    } else { 
     for (NSUInteger i = 0; i<views.count; i++) { 
      [mapView addAnnotation:[views objectAtIndex:i]]; 
     } 

    } 
} 

回答

2

MkCoordinateRegion有一個名爲span的成員。爲了放大/縮小,您必須使用該值:

region.span.longitudeDelta = aValue; 
region.span.latitudeDelta = aValue; 

希望這會有所幫助。

乾杯!

+0

你的意思是嘗試在'else'分支中創建新區域? – RomanHouse 2012-07-08 19:31:13

+0

是的,你在那裏添加了超過1個註釋,你想看到它們,對吧?這就是我從你的問題中所理解的。如果這是正確的,你必須計算它們之間的最大距離,以便檢測它們都適合的矩形。並將其設置爲您的新區域。我看不到另一種方式。雖然計算一些點之間的距離並不是什麼大問題,但我不知道如何將它與區域範圍關聯起來以獲得縮放級別。但我相信這兩者之間必須有聯繫。 – George 2012-07-08 19:46:48