2013-09-12 4 views
2

Я пытаюсь найти широту и долготу, указав адресную строку. Я получаю 0.000 и 0.000 для обоих значений.Найти широту и долготу с помощью CLGeocoder

Я использую MapKit, IOS 7, XCode 5

CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
[geocoder geocodeAddressString:@"Fairfax, VA" completionHandler:^(NSArray* placemarks, NSError* error){ 
    for (CLPlacemark* aPlacemark in placemarks) 
    { 
     CLLocationCoordinate2D coordinate; 

     coordinate.longitude = aPlacemark.location.coordinate.longitude; 
     coordinate.latitude = aPlacemark.location.coordinate.latitude; 

     // updatedCoordinates is a property in my class and I am setting it's value 
     // here and using it in bunch of other places. 
     self.updatedCoordinates = coordinate; 
    } 
}]; 
+2

Вы получаете ошибку? Проверьте значение (ошибка NSError *). Также вы находитесь в цикле, постоянно переписывая значение self.updatedCoordinates. –

+1

Я не знаком с MapKit, но вы проверили 'NSError'? Там может быть ошибка. – Larme

+0

Нет, я не получаю никаких ошибок. Программа вообще не входит в completeHandler. – Harish

ответ

2
-(void)getPlacemarkInfo:(NSString*)placeName { 
    // place name can be paris, etc 
    CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
    [geocoder geocodeAddressString:placeName completionHandler:^(NSArray *placemarks, NSError *error) { 
     if (error) { 
      NSLog(@"%@", error);  
     } else { 
      CLPlacemark *placemark = [placemarks lastObject]; 
    //  placemark.location.coordinate.latitude; will returns latitude 
    //  placemark.location.coordinate.longitude; will returns longitude 
     } 
    }]; 
} 
Смежные вопросы