2016-12-28 47 views
2

我正在创建一个MKMapView应用程序,我想为用户提供一个深入缩放MKCircle的工具来查看注释,同时如果用户想要返回到之前的缩放级别以查看该圆圈,他只需要按下相同的按钮。 我没有得到如何切换缩放级别?如何放大和缩小在MKMapView中的MKCircle在同一个按钮点击ios?

//在下面的代码中,我已经计算mkcircle半径戴上它的MKMapView

- (IBAction)adjustCircle:(id)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) getZoomLevel:(MKCircle*) 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; 

感谢

+0

写你已经试过的代码1 – Lion

回答

0

您可以在视图做负载特性,以纪念iszoomed布尔值,当之前用户首先单击该按钮,放大或缩小,再次单击该按钮时更改BOOL值,检查BOOL值,如果为true,则放大;如果为false,则缩小。

+0

谢谢你的答案。我做了同样的事情。我在按钮点击时提供不同的缩放级别,但问题是区域的跨度一旦设置就不会改变。 – sarita

+0

你可以上传一些图片,我无法理解你的问题。 –

相关问题