Использовать -reverseGeocodeLocation:completionHandler:
из CLGeocoder
.
Попробуйте этот код, единственный фокус в том, что CLPlacemark
(см Documentation для имеющейся информации) вы получите обратно от геокодировщиком имеет кучу информации, которая не всегда соответствует, это был один из моих попыток от более старого проекта, пытаясь проверить на месте, название улицы и т.д. ... тест с использованием случае найти хороший матч:
- (void)getLocationStringForCoordinates:(CLLocationCoordinate2D)coordinates {
if (CLLocationCoordinate2DIsValid(coordinates)) {
CLLocation *photoLocation = [[CLLocation alloc] initWithLatitude:coordinates.latitude longitude:coordinates.longitude];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:photoLocation
completionHandler:^(NSArray *placemarks, NSError *error) {
CLPlacemark *locationPlacemark = [placemarks lastObject];
// Location (popular name, street, area)
NSString *location = locationPlacemark.subLocality ? locationPlacemark.subLocality : (locationPlacemark.name ? locationPlacemark.name : locationPlacemark.thoroughfare);
// sometimes the location can be the same
// as the city name (for small villages), if so
// make sure location is nil to skip it
// else if
// the location name is not being used but is very short 9less then 20 letters, use that instead
if([locationPlacemark.name isEqualToString:locationPlacemark.locality] && [location isEqualToString:locationPlacemark.name])
location = @"";
else if (![locationPlacemark.name isEqualToString:location] && locationPlacemark.name.length < 20)
location = locationPlacemark.name;
// city
NSString *city = locationPlacemark.subAdministrativeArea ? locationPlacemark.subAdministrativeArea : locationPlacemark.locality;
city = city.length > 0 ? [@", " stringByAppendingString:city] : city;
NSString *locationName = [NSString stringWithFormat:@"%@%@", location, city];
}];
}
}
Вы посмотрели документы, касающиеся служб определения местоположения? – rmaddy
См. Http: // stackoverflow.com/questions/6683976/ios-corelocation-get-users-location-when-the-app-load? rq = 1 – rmaddy
@rmaddy Это не совсем близко, но спасибо! –