Ios geocodePostalAddress-从邮政编码获取地址
我正试图从邮政编码中获取地址,但得到的是错误信息,并且没有位置标记。设备似乎找不到位置。为什么会这样 区域设置不重要,我尝试了带和不带,结果是一样的Ios geocodePostalAddress-从邮政编码获取地址,ios,swift,core-location,Ios,Swift,Core Location,我正试图从邮政编码中获取地址,但得到的是错误信息,并且没有位置标记。设备似乎找不到位置。为什么会这样 区域设置不重要,我尝试了带和不带,结果是一样的 let geocoder = CLGeocoder() let postalAddress = CNMutablePostalAddress() postalAddress.postalCode = zipCode geocoder.geocodePostalAddress(postalAddress, preferredLocale: Loc
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)
}
我猜你的测试程序或设备有问题,因为我无法重现这个问题。我没有完成处理程序,因此我将代码更改为:
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, CA 93023, United States
也许邮政编码太模糊了?尝试了这个
postalAddress.isoCountryCode=“US”
,但请改为sameTry geocodeAddressString。@matt我尝试了,但结果相同,只是注意到它在模拟器上工作,但在设备上没有。仍然在发现这个问题。哇,真的很有趣,谢谢你的实验。设备是否在进行地理编码?奇怪。是的,我想我的设备有问题。我会在找到东西后跟进。你在美国吗?也许有一些我们不知道的规则。它们对我也适用——在设备上、模拟器上,还有(令人惊讶的)在操场上。我想您使用的是相同的zip-on设备和模拟器?是的,但可能设备的工作方式不同。这才是最重要的。
Ojai, CA 93023, United States