2012-11-24 2 views
2

내 앱에서 사용자가있는 거리의 이름을 알아야합니다. 현재 CLLocationManger 개체로 사용자 위치를 얻고 MKMapView에 표시 할 수 있다고 알고 있지만 찾을 수 없습니다. 사용자가있는 거리의 이름을 얻는 방법.iOS의 CLLocation에서 길 이름을 가져 오는 방법이 있습니까?

iOS SDK를 사용하거나 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

답변

2

iOS 5 이상부터 CLGeocoder을 사용하여이 작업을 수행 할 수 있습니다. 위치 인식 프로그래밍 가이드 here을 살펴 보시기 바랍니다.

거리를 얻으려면 reverseGeocodeLocation:completionHandler:을 사용하여 요청해야합니다. 해당 완성 처리기에서 CLPlacemark 개체 배열을 받게됩니다. 거리를 얻으려면 kABPersonAddressStreetKey 키를 사용하여 CLPlacemark 객체의 addressDictionary 사전에서 객체를 추출하면됩니다.

+0

고마워요! 매우 도움이된다! – BigLex

0

간단한 확장자 :

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)") 
} 
관련 문제