Google maps iOS sdk get tapped overlay coordinates

gmsmapview, google-maps, google-maps-sdk-ios, ios, objective-c

Solution

UPDATE 6/2/15

Just staple a UITapGestureRecognizer onto the map and then extract the coordinate from the touch point. Your didTapAtCoordinate and didTapAtOverlay will continue to fire as before.

  UITapGestureRecognizer *touchTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTouchTap:)];
  [self.view addGestureRecognizer:touchTap];

-(void)tapTouchTap:(UITapGestureRecognizer*)touchGesture
{
  CGPoint point = [touchGesture locationInView:self.view];
  CLLocationCoordinate2D coord = [self.mapView.projection coordinateForPoint:point];
  NSLog(@"%f %f", coord.latitude, coord.longitude);
}

ORIGINAL POST

You are likely missing two snippets of code. Adopt the GMSMapViewDelegate in your header file:

@interface Map : UIViewController <GMSMapViewDelegate>

You also need to set the delegate in your viewDidLoad:

self.mapView.delegate = self;

Now this should fire for you:

- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate
{
    NSLog(@"You tapped at %f,%f", coordinate.latitude, coordinate.longitude);
}

Problem

i'm working with Google maps iOS sdk. i want to get the coordinates of the touched point when user taps an overlay. there is this delegate method: ``` - (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate ``` but it's not called when you tap an overlay or a marker. can i call it programmatically (but coordinate parameter is missing-that's what i want..)? or get location from this: ``` - (void) mapView: (GMSMapView *) mapView didTapOverlay: (GMSOverlay *) overlay ``` any suggestion's precious! thanks!

Original source