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。










