Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Current location button on ios MKMapView

I am using MKMapView in my iOS Application. I have search bar in my view. If I search for location on map, I am putting annotation on that searched location. Now the issue is, I want to go back to my current location. I have seen Google Maps application, they have one button on Map which will send the user to current location.

How to show that button?. And how to get click event of that button?.

like image 344
Rakesh Avatar asked Nov 14 '14 11:11

Rakesh


3 Answers

SOLUTION 1:

Drag a UIButton to your UIViewController in the storyboard and connect it to an IBAction in the ViewController.m.

-(IBAction)zoomToUserLocation:(id)sender{
    MKCoordinateRegion mapRegion;   
    mapRegion.center = mapView.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapView setRegion:mapRegion animated: YES];
}

SOLUTION 2:

Or you can create your button programmatically like this:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self 
       action:@selector(zoomToUserLocation)
 forControlEvents:UIControlEventTouchUpInside];

[button setTitle:@"My Location" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];

with the following method:

-(void)zoomToUserLocation{
    MKCoordinateRegion mapRegion;   
    mapRegion.center = mapView.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapView setRegion:mapRegion animated: YES];
}
like image 24
Ivan Le Hjelmeland Avatar answered Oct 04 '22 01:10

Ivan Le Hjelmeland


- (void)viewDidLoad
{
    [super viewDidLoad];    
    MKUserTrackingBarButtonItem *buttonItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.map];
    self.navigationItem.rightBarButtonItem = buttonItem;
}
like image 114
Aleksey Mazurenko Avatar answered Oct 03 '22 23:10

Aleksey Mazurenko


Swift 3+

let buttonItem = MKUserTrackingBarButtonItem(mapView: mapView)
self.navigationItem.rightBarButtonItem = buttonItem
like image 21
Emre AYDIN Avatar answered Oct 04 '22 01:10

Emre AYDIN