2

私のアプリでは、ユーザーがいる通りの名前を知る必要があります。現時点では、CLLocationMangerオブジェクトを使用してユーザーの位置を取得し、それを表示するMKMapView方法しかわかりませんが、取得する方法が見つかりませんユーザーがいる通りの名前。

iOS SDK の有無にかかわらずこれを行う方法はありますか?

4

2 に答える 2

3

iOS 5以降では、を使用してこれを行うことができますCLGeocoderこちらのLocationAwarenessプログラミングガイドをご覧になることを強くお勧めします。

通りを取得するには、を使用してリクエストを行う必要がありますreverseGeocodeLocation:completionHandler:。その完了ハンドラーで、オブジェクトの配列を受け取りCLPlacemarkます。通りを取得するには、キーaddressDictionaryを使用してCLPlacemarkオブジェクトの辞書からオブジェクトを抽出するだけです。kABPersonAddressStreetKey

于 2012-11-24T18:22:47.137 に答える
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)")
}
于 2016-07-14T14:15:45.230 に答える