0

我是 iOS 开发的新手。我有纬度和经度的值。我想使用纬度和经度来获取位置的名称?在iOS中是否可以。

4

4 回答 4

2

是的,它可能称为反向地理编码。您需要先导入CoreLocation框架,然后CLGeocoder在 iOS5(及更高版本)中使用。对于 iOS4 及以下的mkreversegeocoder. 以下是使用 `CLGeocoder 获取地址的方法,只需将位置对象提供给它,它就会完成剩下的工作。

[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: 
     ^(NSArray *placemarks, NSError *error) {

         //Get nearby address
         CLPlacemark *placemark = [placemarks objectAtIndex:0];

         //String to hold address
         NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];

         //Print the location to console
         NSLog(@"I am currently at %@",locatedAt);

     }];

您获得的placemarks数组是CLPlacemark对象的实例。IT 让您可以访问 -

Accessing the Placemark Attributes
  name  property
  addressDictionary  property
  ISOcountryCode  property
  country  property
  postalCode  property
  administrativeArea  property
  subAdministrativeArea  property
  locality  property
  subLocality  property
  thoroughfare  property
  subThoroughfare  property
  region  property
于 2012-09-26T03:31:34.523 回答
1

另一种简单的方法是使用 Google map rest api,对以下 url 进行 web 服务调用,它将返回一个包含位置详细信息的 json

http://maps.googleapis.com/maps/api/geocode/json?latlng=10.03,10.03&sensor=false

于 2012-09-26T03:51:21.670 回答
0

是的。您可以CLGeocoder用于 iOS5 及更高版本。

MKReverseGeocoder如果您必须支持以前的操作系统版本,则可以使用。

于 2012-09-26T03:32:35.100 回答
0

除了 MKReverseGeocoder,我推荐你使用 google api。我在我的应用程序中使用它,没有崩溃和快速响应。

于 2012-09-26T03:47:55.183 回答