Rispondo a Mirko che mi chiedeva come realizzare il caso inverso proposto in Come ottenere Latitudine e Longitudine in Objective-C.
Partendo dai valori di Latitudine e Longitudine è possibile sfruttare la classe MKReverseGeocoder per ottenere tutta una serie di informazioni, come: la città, lo stato, l’indirizzo esteso, il cap!
Esempio
Create un qualsiasi progetto e aggiungete i framework: MapKit e CoreLocation. Nell’application delegate (o dove preferite) aggiungete nel .h:
1 2 3 | #import <MapKit/MapKit.h> #import <MapKit/MKReverseGeocoder.h> #import <CoreLocation/CoreLocation.h> |
e nella definizione dell’interfaccia:
1 2 3 | @interface DemoAppDelegate : NSObject <UIApplicationDelegate, MKReverseGeocoderDelegate> { MKReverseGeocoder *reverseGeocoder; ... |
Abbiamo importato i framework, impostato il protocollo MKReverseGeocoderDelegate e preparato un puntatore reverseGeocoder alla classe MKReverseGeocoder. All’avvio dell’applicazione, come mostrato nel codice qui sotto, o dove preferite, basta inserire:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [window makeKeyAndVisible]; CLLocationCoordinate2D latlon; latlon.latitude = 41.949663; latlon.longitude = 12.524292; reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate: latlon]; reverseGeocoder.delegate = self; [reverseGeocoder start]; return YES; } |
Fatto questo il sistema di reverse geocoding farà il resto, scatenado l’evento:
1 2 3 | - (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark { NSLog(@"Informazioni = %@", placemark); } |
Scarica sorgenti e demo
Cliccate qui per scaricare la demo visualizzata qui sotto:









7
Grandioso!