• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在 ios 中单击同一按钮时放大和缩小 MKMapView 中的 MKCircle?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:26:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在创建一个 MKMapView 应用程序,我想为用户提供一种在内部缩放 MKCircle 以查看注释的功能,同时如果用户想返回到先前的缩放级别以查看圆圈,他只是需要按相同的按钮。 我不知道如何在缩放级别之间切换?

//在下面的代码中我已经计算了mkcircle的半径,然后把它放到mkmapview上

- (IBAction)adjustCircleid)sender{
long radius=[self calculateRadius];
NSLog(@"draw circle of radius=%ld",radius);
//int meter = 1000;
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]), 500, 500);
region.span.latitudeDelta  =[self getZoomLevel:circle];
region.span.longitudeDelta =[self getZoomLevel:circle];
[myMapView setRegion:region animated:YES];




-(int) getZoomLevelMKCircle*) circle {
zoomLevel = 11;

if(isShowLocPoints == YES){
    return 20;
}

if (circle != nil) {
double radius = [circle radius] + [circle radius] / 2;
double scale = radius / 500;
zoomLevel=(16 - log(scale) / log(2));
}
NSLog(@"zoom level=%d",zoomLevel);
return zoomLevel;

谢谢



Best Answer-推荐答案


您可以在 View 加载时设置一个 BOOL 值来标记 iszoomed,当用户第一次单击按钮时,放大或缩小,更改 BOOL 值,当再次单击按钮时,检查 BOOL 值,如果为真,放大 ;如果为 false,则缩小。

关于ios - 如何在 ios 中单击同一按钮时放大和缩小 MKMapView 中的 MKCircle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41357139/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap