CLGeoCoder不会返回当前位置的确切数据

时间:2014-03-14 10:17:35

标签: ios objective-c core-location cllocationmanager

在模拟器中,我将位置设置为

Latitude: 38.056709
Longitude: -78.6115

但返回的地标是弗吉尼亚州。

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

[geocoder reverseGeocodeLocation: APP_DELEGATE.userLocation completionHandler:^(NSArray *placemarks, NSError *error)
{
    if([placemarks count] > 0)
    {
        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        NSLog(@"placemark --- %@",placemark);
    }
}];

App.userlocation ”是我在更新locationmanager

后获得的位置

这是我在控制台中获得的内容:

placemark ----
{
    City = "Charlottesville";
    Country = "United States";
    CountryCode = US;
    FormattedAddressLines = ("704 Grassmere Rd",
                             "Charlottesville",
                             "VA 22903-9214",
                             "United States");

    Name = "704 Grassmere Rd";
    PostCodeExtension = 9214;
    State = "Virginia";
    Street = "704 Grassmere Rd";
    SubAdministrativeArea = "Albemarle";
    SubLocality = "Samuel Miller";
    SubThoroughfare = 704;
    Thoroughfare = "Grassmere Rd";
    ZIP = 22903;
}

1 个答案:

答案 0 :(得分:1)

检查您的坐标,这就是Google地图为您的坐标所说的内容:

Latitude: 38.056709
Longitude: -78.6115

enter image description here

CLGeocoder实际上是正确的,因为那些坐标点在弗吉尼亚州而不是哥伦比亚区