有没有办法从iOS中的CLLocation获取街道名称?
在我的应用程序中,我需要知道用户所在街道的名称。目前我只知道hot可以通过有没有办法从iOS中的CLLocation获取街道名称?,ios,Ios,在我的应用程序中,我需要知道用户所在街道的名称。目前我只知道hot可以通过cllocationmanager对象获取用户位置,并在MKMapView中显示,但我找不到任何方法获取用户所在街道的名称 有没有办法在使用或不使用iOS sdk的情况下执行此操作?从iOS 5及以后,您可以使用CLGeocoder执行此操作。我强烈建议您阅读《位置感知编程指南》 为了获得街道信息,您应该使用reverseGeocodeLocation:completionHandler:发出请求。在该完成处理程序中,您将
cllocationmanager
对象获取用户位置,并在MKMapView
中显示,但我找不到任何方法获取用户所在街道的名称
有没有办法在使用或不使用iOS sdk的情况下执行此操作?从iOS 5及以后,您可以使用
CLGeocoder
执行此操作。我强烈建议您阅读《位置感知编程指南》
为了获得街道信息,您应该使用reverseGeocodeLocation:completionHandler:
发出请求。在该完成处理程序中,您将收到一个CLPlacemark
对象数组。要获取街道,只需使用KabPersonalAddressStreetKey
键从CLPlacemark对象中的addressDictionary
字典中提取对象。简单扩展:
import CoreLocation
typealias StreetNameHandler = (String?) -> Void
extension CLLocation {
func streetNameWithCompletionBlock(completionBlock: StreetNameHandler) {
CLGeocoder().reverseGeocodeLocation(self) { placemarks, error in
if let addressDictionary = placemarks?.first?.addressDictionary, street = addressDictionary["Street"] as? String {
completionBlock(street)
}
}
}
}
简单用法:
location.streetNameWithCompletionBlock { street in
print("street \(street)")
}
谢谢!非常有用!