Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MaxFreud

macrumors newbie
Original poster
Hi all,

I'm trying to determine what city my app is being run in.
I'm doing the standard CLLocationManager thing to get the location data:
Code:
	myLocationManager = [[CLLocationManager alloc] init];
	[myLocationManager setDelegate:self];
	[myLocationManager setDesiredAccuracy:kCLLocationAccuracyThreeKilometers];
	[myLocationManager setDistanceFilter:1000];
	[myLocationManager startUpdatingLocation];

Then I'm using the MKReverseGeocoder to get the name of the city:

Code:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
	if(manager == myLocationManager)
	{
		NSDate* eventDate = newLocation.timestamp;
		NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
		if (abs(howRecent) < 60.0)
		{
			NSLog(@"Attempting to extract city name from current location");
			theGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:newLocation.coordinate];
			theGeocoder.delegate = self;
			[theGeocoder start];
			myLocationManager.delegate = nil;
		}
	}
}

And I'm getting some weird results. First of all, sometimes the MKReverseGeocoder instance will call the delegate method
Code:
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
indicating that it succeeded. However, not all of the fields in the MKPlacemark object are filled. Specifically, I need the locality property, and a lot of times, it's null... even when the other fields have been filled correctly.

Secondly, more often than not, the geocoder wil fail with [error description]
Code:
Error Domain=MKErrorDomain Code=4 "The operation couldn’t be completed. (MKErrorDomain error 4.)"

I really don't understand the erratic response of the geocoder. Either I'm doing something wrong and shouldn't be getting good results, or I'm doing it right and should be getting results... I don't understand how it can sometimes work and sometimes not. About every 5th time I run it, it will actually detect the city correctly.

Spare a brother some MapKit wisdom?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.