Я хотел бы выполнить поиск местоположения, например приложение Apple Weather, которое отображает таблицу потенциальных местоположений с каждым нажатием клавиши. Я посылаю входную строку пользователя в функцию ниже каждый раз, когда в текстовом поле происходит событие «edit changed». Строка, кажется, отправляется правильно, но я не возвращаю ожидаемый массив меток. Например, «Честнат» возвращает только «Честнат, Иллинойс», но если я наберу «Честнат Привет», я получаю четыре элемента: «Маршфилд, Массачусетс», «Уилбрахам, Массачусетс», «Южный Хэдли, Массачусетс» и «Гринфилд, Массачусетс» ». Затем набрав «Chesnut Hil», возвращается «Brookline, MA», который даже не был в списке «Честнат-привет». Код ниже. Большое спасибо!Поиск местоположения на клавиатуре, например приложение Apple Weather
func forwardGeocoding(address: String) {
CLGeocoder().geocodeAddressString(address, completionHandler: { (placemarks, error) in
if error != nil {
print(error!)
return
}
var placeName = ""
var placeCoordinate = ""
self.placeNames = [] // empty arrays at the start of each geocode result
self.placeCoordinates = []
if (placemarks?.count)! > 0 {
for placemark in placemarks! {
if placemark.country != "United States" {
let city = placemark.locality ?? ""
let country = placemark.country ?? ""
placeName = "\(city) \(country)"
} else {
let city = placemark.locality ?? ""
placeName = "\(city), \(placemark.administrativeArea!)"
}
let coordinate = placemark.location?.coordinate
placeCoordinate = "\(coordinate!.latitude), \(coordinate!.longitude)"
self.placeNames.append(placeName)
self.placeCoordinates.append(placeCoordinate)
}
}
self.tableView.reloadData()
})
}