You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

53 lines
1.6 KiB

#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
#import "GoogleMapsDemos/Samples/GeocoderViewController.h"
#import <GoogleMaps/GoogleMaps.h>
@implementation GeocoderViewController {
GMSMapView *_mapView;
GMSGeocoder *_geocoder;
}
- (void)viewDidLoad {
[super viewDidLoad];
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868
longitude:151.2086
zoom:12];
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
_mapView.delegate = self;
_geocoder = [[GMSGeocoder alloc] init];
self.view = _mapView;
}
- (void)mapView:(GMSMapView *)mapView
didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate {
// On a long press, reverse geocode this location.
GMSReverseGeocodeCallback handler = ^(GMSReverseGeocodeResponse *response, NSError *error) {
GMSAddress *address = response.firstResult;
if (address) {
NSLog(@"Geocoder result: %@", address);
GMSMarker *marker = [GMSMarker markerWithPosition:address.coordinate];
marker.title = [[address lines] firstObject];
if ([[address lines] count] > 1) {
marker.snippet = [[address lines] objectAtIndex:1];
}
marker.appearAnimation = kGMSMarkerAnimationPop;
marker.map = _mapView;
} else {
NSLog(@"Could not reverse geocode point (%f,%f): %@",
coordinate.latitude, coordinate.longitude, error);
}
};
[_geocoder reverseGeocodeCoordinate:coordinate completionHandler:handler];
}
@end