Pregunta CLGeocoder y compatibilidad hacia atrás


Tengo una pregunta simple

MKReverseCoder está en desuso y no funciona desde iOS 5. Tenemos que usar CLGeocoder. Pero, hay muchas personas bajo iOS4. Cómo pueden funcionar las nuevas aplicaciones con iOS4 e iOS5 para la geocodificación?

¡Gracias!


6
2017-10-18 14:43


origen


Respuestas:


MKReverseGeocoder todavía funciona con iOS5. Está obsoleto, lo que significa que se eliminará en algún momento posterior (como en el lanzamiento de algo como iOS6). Entonces puede continuar usándolo ahora sin ningún problema


4
2017-10-18 15:18



Si alguien está intentando pasar a CLGeocoder desde MKReverseGeocoder, he escrito una publicación de blog que podría ser de ayuda. http://jonathanfield.me/jons-blog/clgeocoder-example.html

Básicamente, un ejemplo sería, una vez que haya creado los objetos locationManager y CLGeocoder, simplemente agregue este código a su viewDidLoad() y luego crea algunas etiquetas o áreas de texto para mostrar los datos.

[super viewDidLoad]; locationManager.delegate = self; [locationManager startUpdatingLocation];

locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[self.CLGeocoder reverseGeocodeLocation: locationManager.location completionHandler: 
 ^(NSArray *placemarks, NSError *error) {

     CLPlacemark *placemark = [placemarks objectAtIndex:0];

         isoCountryCode.text = placemark.ISOcountryCode;
         country.text = placemark.country;
         postalCode.text= placemark.postalCode;
         adminArea.text=placemark.administrativeArea;
         subAdminArea.text=placemark.subAdministrativeArea;
         locality.text=placemark.locality;
         subLocality.text=placemark.subLocality;
         thoroughfare.text=placemark.thoroughfare;
         subThoroughfare.text=placemark.subThoroughfare;
         //region.text=placemark.region;

}];

8
2017-12-05 10:33



- (IBAction)geoCodeLocation:(id)sender{
    [self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: 
     ^(NSArray *placemarks, NSError *error) {
         CLPlacemark *placemark = [placemarks objectAtIndex:0];
         NSLog(@"placemark %@",placemark);
         //String to hold address
         NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
         NSLog(@"addressDictionary %@", placemark.addressDictionary);

         NSLog(@"placemark %@",placemark.region);
         NSLog(@"placemark %@",placemark.country);  // Give Country Name 
         NSLog(@"placemark %@",placemark.locality); // Extract the city name 
         NSLog(@"location %@",placemark.name);
         NSLog(@"location %@",placemark.ocean);
         NSLog(@"location %@",placemark.postalCode);
         NSLog(@"location %@",placemark.subLocality);

         NSLog(@"location %@",placemark.location);
          //Print the location to console
         NSLog(@"I am currently at %@",locatedAt);

         //Set the label text to current location
         [locationLabel setText:locatedAt];

     }];

Para más ver propiedad de CLPlacemark 


1
2017-07-17 09:53