9.7. Converting Meaningful Addresses to Longitude and Latitude
Problem
You have an address of a location and you want to find the spatial location (longitude, latitude) of that address.
Solution
Use the geocodeAddressString:completionHandler: method
of the CLGeocoder class.
Discussion
Reverse geocoding is the process of
retrieving a meaningful address, city and country, and so on, using
spatial locations (Longitude, Latitude).
Geocoding, on the other hand, is the process of
finding the spatial locations of a given address. Both geocoding
and reverse geocoding facilities are encapsulated into
the CLGeocoder class in the Core
Location framework.
We geocode spatial locations by passing the address as NSString to the geocodeAddressString:completionHandler: method
of the CLGeocoder class. The completionHandler parameter of this method
accepts a block object that returns no value and has two
parameters:
A placemarks array (of type
NSArray), which will be set to the locations that matched your search.An error (of type
NSError), which will get set to an error code if the geocoding fails.
Let’s go ahead and declare a property of type CLGeocoder first:
#import "ViewController.h"#import <CoreLocation/CoreLocation.h>@interfaceViewController()@property(nonatomic,strong)CLGeocoder*myGeocoder;@end@implementationViewController
Now, let’s go ahead and implement the code to geocode an address:
-(void)viewDidLoad{[superviewDidLoad];/* We have our address */NSString*oreillyAddress=@"1005 Gravenstein ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access