如何从城市名称中找到lat long

时间:2013-09-24 13:08:51

标签: ios objective-c cllocationmanager

我有一个城市名称,但没有该城市的lat长值。我如何从城市名称中获取lat和long值,然后将其保存到iOS中的变量?我已经看过地理反向编码,但我看到的例子与我正在寻找的相反(他们从纬度/经度中找到城市名称)。

1 个答案:

答案 0 :(得分:5)

创建地理编码器并传入字符串名称:

确保将CoreLocation添加到项目和#import <CoreLocation/CoreLocation.h>,或者,如果您使用Xcode 5,模块支持将自动链接到@import CoreLocation;

的正确框架
NSString *city = @"New York, New York";
CLGeocoder *geocoder = [CLGeocoder new];
[geocoder geocodeAddressString:city completionHandler:^(NSArray *placemarks, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", [error localizedDescription]);
        return; // Bail!
    }

    if ([placemarks count] > 0) {
        CLPlacemark *placemark = [placemarks lastObject]; // firstObject is iOS7 only.
        NSLog(@"Location is: %@", placemark.location);

    }
}];

给出了

  

位置是:&lt; + 40.72377900,-73.99128900&gt; +/- 100.00米(速度-1.00 mps /航向-1.00)@ 9/24/13,2:34:18 PM英国夏令时

我只是记录了地标,所以你得到了更多,但是你可以看到那里的纽约,那里的纽约。