Я пытаюсь найти текущее местоположение и затем использовать геокодер, чтобы найти город, штат.
Вот что у меня есть:
- (void)viewDidLoad
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:newLocation.coordinate];
geoCoder.delegate = self;
[geoCoder start];
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{
//NSLog(@"Reverse Geocoder completed");
MKPlacemark * myPlacemark = placemark;
NSString *city = [myPlacemark.addressDictionary objectForKey:(NSString*)kABPersonAddressCityKey];
NSString *state = [myPlacemark.addressDictionary objectForKey:(NSString*)kABPersonAddressStateKey];
location = [[NSString alloc] initWithFormat:@"%@,%@", city, state];
}
Я протестировал обратный геокодер, и он отлично работает, когда я вручную набираю создать координату моего текущего местоположения: (50.4, -104.6). Однако, когда я запускаю этот код с точкой останова в методе делегата didUpdateToLocation, newLocation дает мне координату 37,3, -122,0, что в Купертино, штат Калифорния. Я думаю, что неправильно настраиваю locationManager, так что есть идеи?