How to center my current location in MKMapView?
Asked Answered
G

4

19

I am showing the current location in MKMapView by using showUserLocation enables. I also want to center the mapview to the user current location and also the zoomed map of location. Please help me regarding this as I don't get any help from other similar questions on stackoverflow.

My code is below:

- (void)viewDidLoad {
  [super viewDidLoad];
  [mapView setMapType:MKMapTypeStandard];
  [mapView setZoomEnabled:YES];
  [mapView setScrollEnabled:YES];
  [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];
  [mapView setDelegate:self];
}
Gottschalk answered 24/11, 2011 at 11:44 Comment(0)
T
54

For centering on user location, you can use the following code:

[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];

For zooming on special locations, you should study how the regions (MKCoordinateRegion) are counted and work, count your values for the region and display it using call:

[mapView setRegion:myRegion animated:YES];

This sample WorldCities shows basics of region displaying.

Trichotomy answered 24/11, 2011 at 11:52 Comment(7)
i am also doint the same thing but it doesnot work....Any other suggestions if possible....thanks in advance...Gottschalk
maybe you can post your code in your question, so it will be easy to guess what's wrong =)Trichotomy
I have updated my code in question and this will not centered the mapView to currentLocation.Please check it and help me....thanks in advance.Gottschalk
if you're trying to set this from viewDidLoad: it will fail, because map view doesn't know yet the user location (it needs some time to receive response from GPS); so it will be correct to call [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES] from the UIMapViewDelegate method - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocationTrichotomy
How do I add zoom in to user location?Prompt
i added profile pic on current location but it is not coming in center.Hygro
Swift 4: mapView.setCenter(mapView.userLocation.coordinate, animated: true)Ashcraft
F
2
MKCoordinateRegion region;
    MKCoordinateSpan span;
    span.latitudeDelta = 0.2;     // 0.0 is min value u van provide for zooming
    span.longitudeDelta= 0.2;

    CLLocationCoordinate2D location = [self addressLocation];
    region.span=span;
    region.center =location;     // to locate to the center
    if(addAnnotation != nil) {
        [mapView removeAnnotation:addAnnotation];
        [addAnnotation release];
        addAnnotation = nil;
    }
    addAnnotation = [[AddressANnotation alloc] initWithCoordinate:location];
    [mapView addAnnotation:addAnnotation];
    [mapView setRegion:region animated:TRUE];
    [mapView regionThatFits:region];

This had help me to show the position at the center of the map view.

Fortepiano answered 24/11, 2011 at 12:15 Comment(0)
F
0
-(void) removeZoom:(float)deltaValue
{
    MKCoordinateRegion region;
    region.center.latitude =  self.locationManager.location.coordinate.latitude;
    region.center.longitude = self.locationManager.location.coordinate.longitude;

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    region.span.latitudeDelta = deltaValue;
    region.span.longitudeDelta = deltaValue;
    region = [mapViewSelf regionThatFits:region];
    [mapViewSelf setRegion:region animated:YES];
    [UIView commitAnimations];

}
Fowler answered 10/3, 2017 at 11:20 Comment(0)
F
-1

for MKMapView

self.mapView.showsUserLocation = YES;
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
Feverish answered 10/8, 2014 at 15:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.