2013-09-08 3 views
0

Моя карта должна приближаться к местоположению, сохраненному в NSUserDefaults. Хотя мой контакт отображается на карте, карта идет в океан и вообще не приближается. Вот мой код. Что я делаю не так?Карта не приближается к координатам

я определить #define METERS_PER_MILE 1609.344

-(void)viewWillAppear:(BOOL)animated{ 

    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; 
    if ([ud boolForKey:@"headquarters_coordinates"]) 
    { 
     CLLocationCoordinate2D savedCoordinate; 
     savedCoordinate.latitude = [ud doubleForKey:@"headquarters_latitude"]; 
     savedCoordinate.longitude = [ud doubleForKey:@"headquarters_longitude"]; 
     //create annotation object using savedCoordinate and add to map view... 
     NSLog(@"Your HQ is at coordinates %f and %f",savedCoordinate.latitude, savedCoordinate.longitude); 



     MapViewAnnotation *ann1 =[[MapViewAnnotation alloc] init]; 
     [email protected]"HQ"; 
     [email protected]""; 
     ann1.coordinate= savedCoordinate; 
     [mapView addAnnotation:ann1]; 



     MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(savedCoordinate, 0.5*METERS_PER_MILE, 0.5*METERS_PER_MILE); 


     [mapView setRegion:viewRegion animated:YES]; 

    } 

} 

ответ

2

Вот пример моего кода, который работает, я надеюсь, что это помогает (я думаю, вы должны включить «MKCoordinateRegion adjustedRegion = [MAPview regionThatFits: viewRegion];» в код). И если вы хотите, чтобы ваш зум был анимирован, переместите свой код в viewdidapear.

#define METERS_PER_MILE 1609.344 

CLLocationCoordinate2D zoomLocation; 
zoomLocation.latitude =[mylatitude floatValue]; 
zoomLocation.longitude = [mylongitude floatValue]; 

MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.1*METERS_PER_MILE, 0.1*METERS_PER_MILE); 
MKCoordinateRegion adjustedRegion = [mapViewElement regionThatFits:viewRegion]; 
[mapViewElement setRegion:adjustedRegion animated:YES];