shadonar
shadonar

Reputation: 1194

iOS 6 Map not showing provided lat long location

I am using a Map View within a UIViewController and I have provided a default location to zoom in on, with an annotation as well. However the zoom is not working. The Annotation is working fine, but the initial zoom to location isn't working.

I'm not sure what's causing the issue. Any help would be greatly appreciated.

Here's my code:

- (void)viewDidLoad
{
    [super viewDidLoad];

    MKCoordinateRegion myRegion;

    //Center
    CLLocationCoordinate2D center;
    center.latitude = 39.21516;
    center.longitude = -76.580806;

    //Span
    MKCoordinateSpan span;
    span.latitudeDelta = 0.02f;
    span.longitudeDelta = 0.02f;

    myRegion.center = center;
    myRegion.span = span;

    //set mapView
    [self.mapView setRegion:ascRegion animated:YES];

    //Annotation
    //Create coordinate for annotation
    CLLocationCoordinate2D theLocation;
    theLocation.latitude = 39.21516;
    theLocation.longitude = -76.580806;

    MyMapAnnotation * myAnnotation = [MyMapAnnotation alloc];
    myAnnotation.coordinate = theLocation;
    myAnnotation.title = @"I am here";
    myAnnotation.subtitle = @"This is where I am";

    [self.mapView addAnnotation:myAnnotation];
}

Upvotes: 0

Views: 615

Answers (1)

Enrico Susatyo
Enrico Susatyo

Reputation: 19790

Try to follow this answer:

- (void)zoomToFitMapAnnotations:(MKMapView *)mapView { 
    if ([mapView.annotations count] == 0) return; 

    CLLocationCoordinate2D topLeftCoord; 
    topLeftCoord.latitude = -90; 
    topLeftCoord.longitude = 180; 

    CLLocationCoordinate2D bottomRightCoord; 
    bottomRightCoord.latitude = 90; 
    bottomRightCoord.longitude = -180; 

    for(id<MKAnnotation> annotation in mapView.annotations) { 
        topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude); 
        topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude); 
        bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude); 
        bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude); 
    } 

    MKCoordinateRegion region; 
    region.center.latitude = topLeftCoord.latitude - (topLeftCoord.latitude - bottomRightCoord.latitude) * 0.5; 
    region.center.longitude = topLeftCoord.longitude + (bottomRightCoord.longitude - topLeftCoord.longitude) * 0.5;      
    region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 1.1; 

    // Add a little extra space on the sides 
    region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 1.1; 

    region = [mapView regionThatFits:region]; 
    [mapView setRegion:region animated:YES]; 
}

Upvotes: 1

Related Questions