내 앱에서 사용자가있는 거리의 이름을 알아야합니다. 현재 CLLocationManger
개체로 사용자 위치를 얻고 MKMapView
에 표시 할 수 있다고 알고 있지만 찾을 수 없습니다. 사용자가있는 거리의 이름을 얻는 방법.iOS의 CLLocation에서 길 이름을 가져 오는 방법이 있습니까?
iOS SDK를 사용하거나 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?
내 앱에서 사용자가있는 거리의 이름을 알아야합니다. 현재 CLLocationManger
개체로 사용자 위치를 얻고 MKMapView
에 표시 할 수 있다고 알고 있지만 찾을 수 없습니다. 사용자가있는 거리의 이름을 얻는 방법.iOS의 CLLocation에서 길 이름을 가져 오는 방법이 있습니까?
iOS SDK를 사용하거나 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?
iOS 5 이상부터 CLGeocoder
을 사용하여이 작업을 수행 할 수 있습니다. 위치 인식 프로그래밍 가이드 here을 살펴 보시기 바랍니다.
거리를 얻으려면 reverseGeocodeLocation:completionHandler:
을 사용하여 요청해야합니다. 해당 완성 처리기에서 CLPlacemark
개체 배열을 받게됩니다. 거리를 얻으려면 kABPersonAddressStreetKey
키를 사용하여 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)")
}
고마워요! 매우 도움이된다! – BigLex