2011-07-07 6 views
0

mapviewコントロールに20〜30ピンが表示されています。すべてのピンが見えるようにズームアウトしたいと思います。ここに私のコードです:MapViewのすべてのピンを見るためにズームアウト

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate],500000, 500000); 
    [mv setRegion:region animated:YES]; 

どうすればいいですか?

答えて

3
/** 
* Center the map on an area covering all annotations on the map. 
*/ 
- (void)recenterMap { 
    NSArray *coordinates = [self.mapView valueForKeyPath:@"annotations.coordinate"]; 
    // look for the minimum and maximum coordinate 
    CLLocationCoordinate2D maxCoord = {-90.0f, -180.0f}; 
    CLLocationCoordinate2D minCoord = {90.0f, 180.0f}; 
    for(NSValue *value in coordinates) { 
     CLLocationCoordinate2D coord = {0.0f, 0.0f}; 
     [value getValue:&coord]; 
     if(coord.longitude > maxCoord.longitude) { 
      maxCoord.longitude = coord.longitude; 
     } 
     if(coord.latitude > maxCoord.latitude) { 
      maxCoord.latitude = coord.latitude; 
     } 
     if(coord.longitude < minCoord.longitude) { 
      minCoord.longitude = coord.longitude; 
     } 
     if(coord.latitude < minCoord.latitude) { 
      minCoord.latitude = coord.latitude; 
     } 
    } 
    // create a region 
    MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}}; 
    region.center.longitude = (minCoord.longitude + maxCoord.longitude)/2.0; 
    region.center.latitude = (minCoord.latitude + maxCoord.latitude)/2.0; 
    // calculate the span 
    region.span.longitudeDelta = maxCoord.longitude - minCoord.longitude; 
    region.span.latitudeDelta = maxCoord.latitude - minCoord.latitude; 
    // center the map on that region 
    [self.mapView setRegion:region animated:YES]; 
} 
関連する問題