Estoy tratando de usar (reenviar) la geocodificación utilizando las nuevas API CLLocationManager en iOS 5, y no estoy teniendo suerte.CLLocationManager geocodeAddressString: inRegion no funciona para restringir región (ios5)
Estoy especificando una región basada en la ubicación actual, y sin embargo me está dando resultados en el otro lado del mundo.
//CLLocation *currentloc is set to the current location when I get in here (<+37.78583400,-122.40641700>)
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:[currentloc coordinate] radius:5000 /*meters*/ identifier:@"You are here"];
// Region is now: (identifier You are here) <+37.78583400,-122.40641700> radius 5000.00m
NSString *addressString = @"Citibank"; //for example
[geoCoder geocodeAddressString:addressString inRegion:region completionHandler:^(NSArray* placemarks, NSError* error){
for (CLPlacemark* aPlacemark in placemarks)
{ // Process the placemark.
NSLog(@"Got Placemark : %@", aPlacemark);
}
}];
Y todo lo que consigo es:
> 2011-12-14 15:50:49.882 [12377:12503] Got Placemark : Citibank, New
> Delhi, Delhi, India @ <+28.63470640,+77.22010140> +/- 100.00m, region
> (identifier <+28.63517750,+77.21878050> radius 154.35)
> <+28.63517750,+77.21878050> radius 154.35m
>
> 2011-12-14 15:50:49.883[12377:12503] Got Placemark : CitiBank, Noida,
> Uttar Pradesh, India @ <+28.58157180,+77.32408380> +/- 100.00m, region
> (identifier <+28.58161950,+77.32315050> radius 154.41)
> <+28.58161950,+77.32315050> radius 154.41m
>
> 2011-12-14 15:50:49.885 [12377:12503] Got Placemark : Citibank, New
> Delhi, Delhi, India @ <+28.53627320,+77.21128390> +/- 100.00m, region
> (identifier <+28.53630050,+77.21054050> radius 154.46)
> <+28.53630050,+77.21054050> radius 154.46m
>
> ...
Cualquier idea:
lo hace pensar que estoy en Nueva Delhi? (Creo que la respuesta es no - porque una búsqueda de "All Star Donuts" con la misma inregion me pone en Tailandia
¿estoy haciendo mal uso "inregion"
hace este trabajo para cualquier persona, ya que se muy bueno si y cuando lo hace
Encontré una solución a este problema utilizando el método 'geocodeAddressString: completionHandler:' en su lugar. Eche un vistazo a [mi solución] (http://stackoverflow.com/questions/10202550/clgeocoder-returning-locations-in-other-countries/13632049#13632049) a una pregunta muy similar. – msoler