我的地图视图包含一个圆圈,该圆圈涵盖了多个具有一个中心点的精确点。每当用户单击按钮时,都应将地图放大到这样的水平才能看到该圆圈,而不应将地图放大或缩小得应显示确切的圆圈。用户注销后,下次登录时圆将具有新的半径。如何计算适当的缩放级别。
    我的代码:

-(void)showCircle{

   //calculate new radius
    long radius=[self calculateRadius];
    MKCircle *circle= [[MKCircle alloc]init];

    circle = [MKCircle circleWithCenterCoordinate:CLLocationCoordinate2DMake([groupLat floatValue], [groupLon floatValue]) radius:radius];
    [myMapView addOverlay:circle];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake([groupLat floatValue], [groupLon floatValue]), 800, 800);
    MKCoordinateSpan span;

    //calculate zoom level
    double radius=[circle radius]);
    double rad = radius + radius / 2;

    double scale = rad / 500;
    zoomLevel=(16 - log(scale) / log(2));

    region.span.latitudeDelta  =zoomLevel;
    region.span.longitudeDelta =zoomLevel;

    [myMapView setRegion:region animated:YES];
}


先感谢您!

最佳答案

您可以尝试:mapRectThatFits(:)mapRectThatFits( :edgePadding:)

可能是这样,根据您的圈子缩放地图:

myMapView.visibleMapRect = [myMapView mapRectThatFits:circle.boundingMapRect];


希望这对您有所帮助:)

关于ios - 如何设置MKMap View 的缩放级别,使MKCircle(可变半径)可见?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41500584/

10-15 06:51