geocodePostalAddress-从邮政编码获取地址

我正在尝试从邮政编码中获取地址,但是却出现了错误且没有地标。看来设备找不到位置。为什么会这样?

语言环境无关紧要,无论是否尝试使用语言环境,结果都是相同的。

let geocoder = CLGeocoder()

let postalAddress = CnmutablePostalAddress()
postalAddress.postalCode = zipCode

geocoder.geocodePostalAddress(postalAddress,preferredLocale: Locale(identifier: "en_US")) { (placemarks,err) in
        if let placemark = placemarks?[0] {
            completionHandler(placemark)
            return
        }
        completionHandler(nil)
}
err = (Error?)  domain: "kCLErrorDomain" - code: 8
eduasksz 回答:geocodePostalAddress-从邮政编码获取地址

我猜您的测试过程或设备存在问题,因为我无法重现该问题。我没有完成处理程序,因此我将代码更改为:

    let geocoder = CLGeocoder()
    let postalAddress = CNMutablePostalAddress()
    postalAddress.postalCode = "93023"
    geocoder.geocodePostalAddress(postalAddress,preferredLocale: Locale(identifier: "en_US")) { (placemarks,err) in
            if let placemark = placemarks?[0] {
                print(placemark)
                return
            }
            print(err)
    }

我知道了

93023,Ojai,CA  93023,United States...

这是正确的。也许您一直在对地理编码器进行锤击,以致受到限制?也许您的设备上有一些错误的设置?或者它可能更微妙。

,

CLGeocoder也对我有用,但是如果对您不起作用,请尝试使用此MKLocalSearch游乐场:

import UIKit
import MapKit

let searchRequest = MKLocalSearch.Request()
searchRequest.naturalLanguageQuery = "93023"
let search = MKLocalSearch(request: searchRequest)
search.start { response,error in
    guard let response = response else {
        print(error?.localizedDescription ?? "This should be impossible")
        return
    }
  print(response.mapItems.first?.placemark.title ?? "No Placemarks")
}

输出:

Ojai,United States
本文链接:https://www.f2er.com/3149524.html

大家都在问