gpt4 book ai didi

ios - 如何计算 MKMapView 的缩放级别以适合 MKCircle?

转载 作者:行者123 更新时间:2023-12-01 15:36:58 27 4
gpt4 key购买 nike

我想在按钮单击事件中显示 mkcircle。我必须使用圆半径计算 MKMapView 的缩放级别以使圆引人注目。让半径可以是任何大小,但 mkmapview 上的 mkcircle 应该足够大,如截图所示。我的代码:

- (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];

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

enter image description here
我想要像下面这样的输出

enter image description here

任何建议,将不胜感激。
谢谢你!

最佳答案

我知道它的旧帖子,但以任何方式回复.. 代码在 swift 5 , Xcode 11

let region = MKCoordinateRegion(circle.boundingMapRect)
mapView.setRegion(region, animated: true)
或者我们可以通过以下方式轻松添加一些边距
mapView.setVisibleMapRect(circle.boundingMapRect, edgePadding: UIEdgeInsets(top: 50, left: 50, bottom: 50, right: 50), animated: true)

关于ios - 如何计算 MKMapView 的缩放级别以适合 MKCircle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41374469/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com