iOS中的地理位置的获取及plist设置方法

2020-01-21 04:53:58王振洲

let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString("广州") { (pls:[CLPlacemark]?, error : NSError?) in
 if error == nil{
  print("地址编码成功")
  print(pls?.last?.location)
 }else{
  print("错误 (error)")
 }  
}

打印

地址编码成功


Optional(<+23.12517800,+113.28063700> +/- 100.00m (speed -1.00 mps / course -1.00) @ 8/14/16, 9:49:22 PM China Standard Time)

反地理编码


let geoCoder = CLGeocoder()
geoCoder.reverseGeocodeLocation(CLLocation(latitude:23.125,longitude: 113.280)) { (pls:[CLPlacemark]?, error:NSError?) in
   if error == nil{
    print("地址反编码成功 城市:(pls?.last?.locality)")
    print(pls?.last?.addressDictionary)
   }else{
    print("错误 (error)")
   }
  }

打印

地址反编码成功 城市:Optional("Guangzhou")


Optional([SubLocality: Yuexiu, Street: Yunhai Tongjin No.11, State: Guangdong, CountryCode: CN, Thoroughfare: Yunhai Tongjin No.11, Name: Luo Sangmeidi, Country: China, FormattedAddressLines: <__NSArrayM 0x7ff1da5652d0>(
Yunhai Tongjin No.11 Yuexiu,
Guangzhou,
Guangdong China
)
, City: Guangzhou])

注意同一个CLGeocoder对象,不能同时编码与反编码

比如


let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString("广州") { (pls:[CLPlacemark]?, error : NSError?) in
 ...

}
geoCoder.reverseGeocodeLocation(CLLocation(latitude:23.125,longitude: 113.280)) { (pls:[CLPlacemark]?, error:NSError?) in
 ...
 }

这样只会打印第一个编码成功的结果

11、CLPlacemark对象详解


@NSCopying public var location: CLLocation? { get }    //经纬度
@NSCopying public var region: CLRegion? { get }     //所关联的地理区域
@available(iOS 9.0, *)
@NSCopying public var timeZone: NSTimeZone? { get }    //时间域
public var addressDictionary: [NSObject : AnyObject]? { get } //详细地址信息

//addressDictionary中的属性
public var name: String? { get }     //名字 
public var thoroughfare: String? { get }   //街道名字
public var subThoroughfare: String? { get }  //子街道名字
public var locality: String? { get }    //城市名称
public var subLocality: String? { get }   //邻城市名称
public var administrativeArea: String? { get }  //行政区域 比如:CA
public var subAdministrativeArea: String? { get } //子行政区域
public var postalCode: String? { get }    //邮政编码
public var ISOcountryCode: String? { get }   //国家代码表
public var country: String? { get }    //国家
public var inlandWater: String? { get }   //内陆水域
public var ocean: String? { get }     //海洋
public var areasOfInterest: [String]? { get }  //兴趣点

以上这篇iOS中的地理位置的获取及plist设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持ASPKU。