首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算适合MKCircle的MKMapView缩放级别?

如何计算适合MKCircle的MKMapView缩放级别?
EN

Stack Overflow用户
提问于 2016-12-29 14:44:37
回答 1查看 396关注 0票数 4

我想要在按钮单击事件时显示mkcircle。我必须使用圆半径来计算MKMapView的缩放级别,以使圆noticeable.Let半径可以小或大,但mkmapview上的mkcircle应该足够大,如screenshot.My代码中所示:

代码语言:javascript
复制
- (IBAction)showCircle:(id)sender {
    long radius=[self calculateRadius];
    NSLog(@"draw circle of radius=%ld",radius);
    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);

    //calculate zoom level
    double radius = [circle radius] + [circle radius] / 2;
    double scale = radius / 500;
    zoomLevel=(16 - log(scale) / log(2));

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

    [myMapView setRegion:region animated:YES];

//问题是圆看起来很小,外面的空间更多

我想要如下输出

如有任何建议,我们将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-09-10 02:10:01

我知道它的老帖子,但不管怎样,回复..Swift 5中的代码,Xcode 11

代码语言:javascript
复制
let region = MKCoordinateRegion(circle.boundingMapRect)
mapView.setRegion(region, animated: true)

或者,我们可以通过以下方式轻松地添加一些保证金

代码语言:javascript
复制
mapView.setVisibleMapRect(circle.boundingMapRect, edgePadding: UIEdgeInsets(top: 50, left: 50, bottom: 50, right: 50), animated: true)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41374469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档