不基于仅地址的 MapKit 转发地理编码?
MapKit forward geocoding that is not based on ONLY addresses?
所以我用 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 地理编码函数只是 return 输入字符串的顶部命中,它不是 return 数组结果——有办法改变吗?我注意到的第二件事是此函数不适用于 'Point of Interest' 个位置——例如,如果您输入“McDonalds”作为字符串,您将得不到返回结果,因为它在技术上不是地址。有人有什么建议吗?
尝试使用 MKLocalSearch
代替:
let request = MKLocalSearch.Request()
request.region = region
request.naturalLanguageQuery = "McDonalds"
let search = MKLocalSearch(request: request)
search.start { (response, error) in
}
所以我用 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 地理编码函数只是 return 输入字符串的顶部命中,它不是 return 数组结果——有办法改变吗?我注意到的第二件事是此函数不适用于 'Point of Interest' 个位置——例如,如果您输入“McDonalds”作为字符串,您将得不到返回结果,因为它在技术上不是地址。有人有什么建议吗?
尝试使用 MKLocalSearch
代替:
let request = MKLocalSearch.Request()
request.region = region
request.naturalLanguageQuery = "McDonalds"
let search = MKLocalSearch(request: request)
search.start { (response, error) in
}