来自lat和long的iOS位置

时间:2012-09-26 03:27:20

标签: objective-c ios location latitude-longitude

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

4 个答案:

答案 0 :(得分:2)

是的,它可能被称为reverse geocoding。您需要首先导入CoreLocation框架,然后在iOS5(及更高版本)中使用CLGeocoder。对于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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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