当我反向编码时,CLGeocoder不返回邻居名称

时间:2013-12-22 19:43:26

标签: core-location cllocationmanager reverse-geocoding clgeocoder

我目前正在开发一款将使用reversegeocode返回的数据的应用。现在,我可以成功地获得以下某个位置的值:地址,城市,州,邮政编码和国家/地区。除了我能够获得的值之外,我还想获得反向编码的位置的邻域名称。我的代码如下:

CLLocationManager *location = [[CLLocation alloc] init];
[location setDelegate:self];
location.desiredAccuracy=kCLLocationAccuracyBest;
location.distanceFilter=kCLDistanceFilterNone;

[location startMonitoringSignificantLocationChanges];

CLGeocoder *geolocation = [[CLGeocoder alloc] init];

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
NSLog(@"Update method is definitely being called!");
NSLog(@"Your current location is : %@", [locations lastObject]);
[geolocation reverseGeocodeLocation:[locations lastObject] completionHandler:^(NSArray *placemarks, NSError *error) {
    NSLog(@"Reverse geocode complete: %@", placemarks);

    CLPlacemark *placemark = [placemarks objectAtIndex:0];
    NSLog(@"The locality area is: %@", placemark.locality);
}];
}

我希望placemark.locality能够返回邻居,但它会返回城市。

非常感谢任何帮助,
戴夫

1 个答案:

答案 0 :(得分:1)

在阅读Apple为CLPlacemark课程提供的文档后,我注意到有一些我不知道的字段。

包含在这些领域正是我试图获得的,subLocality,似乎是邻居的Apple文档。如果我刚刚阅读文档而不是假设从[placemarks objectAtIndex:0]返回的对象,当存储在CLPlacemark *地标中时,将没有比调用NSLog(@"%@", [placemarks objectAtIndex:0])时显示的数据更多的数据,I我会更快地想出这个。那好吧。我用来访问邻域的代码是:

[placemark subLocality];