如何解决MapKit 前向地理编码不只基于地址?
所以我用 MapKit 做了一个超级简单的正向地理编码函数:
func getCoordinates(from address: String) {
CLGeocoder().geocodeAddressString(address) { placemark,error in
guard error == nil && placemark != nil else {
return
}
for index in 0..<placemark!.count {
let number = index + 1
print("Location \(number): \(placemark?[index].location?.coordinate)")
}
}
}
现在有两件事:第一件事是(只是为了澄清),mapkit 地理编码函数只返回输入字符串的最高命中,它不返回结果数组——有没有办法改变它?我注意到的第二件事是此功能不适用于“兴趣点”位置——例如,如果您输入“McDonalds”作为字符串,则不会返回任何结果,因为它在技术上不是地址。有人有什么建议吗?
解决方法
尝试改用 MKLocalSearch
:
let request = MKLocalSearch.Request()
request.region = region
request.naturalLanguageQuery = "McDonalds"
let search = MKLocalSearch(request: request)
search.start { (response,error) in
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。