2016-12-28 8 views
2

MKCaple을 확대/축소하는 기능을 사용자에게 제공하려는 MKMapView 앱을 만들고 있는데, 사용자가 원을 보려면 이전 확대/축소 수준으로 돌아가고 싶을 때 같은 순간에 동일한 버튼을 누릅니다. 확대/축소 수준을 전환하는 방법이 표시되지 않습니까? 아래의 코드에서 내가MKMapView의 MKCircle을 확대/축소하는 방법 동일한 버튼의 동일한 버튼을 클릭하십시오.

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

뷰가 부하를했을 때 당신이 속성이 BOOL 값이 때 iszoomed 표시 할 수 있습니다에게 mkmapview에 놓기 전에 mkcircle의 반경을 계산 한 //

사용자가 처음 버튼을 클릭하거나, 확대 또는 축소하고, BOOL 값을 변경하고, 다시 버튼을 클릭하면 BOOL 값을 확인합니다 (true 인 경우 확대). false 인 경우 축소합니다.

+0

답장을 보내 주셔서 감사합니다. 같은 방법으로했습니다. 버튼 클릭시 다른 확대/축소 수준을 제공하지만 문제가 발생하면 영역의 범위는 변경되지 않습니다. – sarita

+0

사진을 업로드 할 수 있습니까? 문제를 이해할 수 없습니다. –