Objective c 缩小以查看MapView中的所有接点

Objective c 缩小以查看MapView中的所有接点,objective-c,mapkit,Objective C,Mapkit,我在mapview控件上显示了20-30个接点,我希望缩小,以便所有接点都可见。这是我的密码: MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate],500000, 500000); [mv setRegion:region animated:YES]; 我该怎么做 /** /** * Center the map on an area covering all annotat

我在mapview控件上显示了20-30个接点,我希望缩小,以便所有接点都可见。这是我的密码:

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate],500000, 500000); 
    [mv setRegion:region animated:YES];
我该怎么做

/**
/** 
 * 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];
}
*将地图居中放置在覆盖地图上所有注释的区域上。 */ -(void)重新居中映射{ NSArray*坐标=[self.mapView valueForKeyPath:@“annotations.coordinate”]; //寻找最小和最大坐标 CLLocationCoordinate2D maxCoord={-90.0f,-180.0f}; CLLocationCoordinate2D minCoord={90.0f,180.0f}; 用于(NSValue*坐标中的值){ CLLocationCoordinate2D Coordinate={0.0f,0.0f}; [value-getValue:&coord]; if(坐标经度>最大坐标经度){ maxCoord.longitude=coord.longitude; } if(坐标纬度>最大坐标纬度){ maxCoord.latitude=坐标纬度; } if(坐标经度<最小坐标经度){ minCoord.longide=coord.longide; } if(坐标纬度<最小坐标纬度){ minCoord.latitude=coord.latitude; } } //创建一个区域 MKCoordinateRegion={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; //计算跨度 region.span.longitudeDelta=maxCoord.longitude-minCoord.longitude; region.span.latitudeDelta=maxCoord.latitude-minCoord.latitude; //把地图放在那个地区的中心 [self.mapView setRegion:区域动画:是]; }
/**
*将地图居中放置在覆盖地图上所有注释的区域上。
*/
-(void)重新居中映射{
NSArray*坐标=[self.mapView valueForKeyPath:@“annotations.coordinate”];
//寻找最小和最大坐标
CLLocationCoordinate2D maxCoord={-90.0f,-180.0f};
CLLocationCoordinate2D minCoord={90.0f,180.0f};
用于(NSValue*坐标中的值){
CLLocationCoordinate2D Coordinate={0.0f,0.0f};
[value-getValue:&coord];
if(坐标经度>最大坐标经度){
maxCoord.longitude=coord.longitude;
}
if(坐标纬度>最大坐标纬度){
maxCoord.latitude=坐标纬度;
}
if(坐标经度<最小坐标经度){
minCoord.longide=coord.longide;
}
if(坐标纬度<最小坐标纬度){
minCoord.latitude=coord.latitude;
}
}
//创建一个区域
MKCoordinateRegion={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;
//计算跨度
region.span.longitudeDelta=maxCoord.longitude-minCoord.longitude;
region.span.latitudeDelta=maxCoord.latitude-minCoord.latitude;
//把地图放在那个地区的中心
[self.mapView setRegion:区域动画:是];
}