Tôi đang cố gắng sử dụng (chuyển tiếp) mã hóa địa lý bằng cách sử dụng API CLLocationManager mới trong iOS 5 và không có bất kỳ may mắn nào.CLLocationManager geocodeAddressString: inRegion không hoạt động để hạn chế vùng (ios5)
Tôi đang chỉ định khu vực dựa trên vị trí hiện tại, nhưng nó cho tôi kết quả ở phía bên kia của thế giới.
//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);
}
}];
Và tất cả tôi nhận được là:
> 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
>
> ...
Bất kỳ ý tưởng:
Liệu nó nghĩ tôi đang ở New Delhi? (Tôi nghĩ rằng câu trả lời là không - vì một tìm kiếm cho "All Star Donuts" với inRegion cùng đặt tôi ở Thái Lan
Tôi lạm dụng "inRegion"
Liệu tác phẩm này với bất cứ ai bởi vì nó sẽ là tuyệt vời nếu và khi nó
Tôi tìm thấy một giải pháp cho vấn đề này bằng cách sử dụng phương pháp 'geocodeAddressString: completionHandler:' thay thế. Hãy xem [giải pháp của tôi] (http://stackoverflow.com/questions/10202550/clgeocoder-returning-locations-in-other-countries/13632049#13632049) với một câu hỏi rất giống nhau. – msoler