Swift 5 で MapKit を使用するのに問題があります。私が使用している自然検索クエリがあります。特定の通りを入力すると、1 つまたはそれ以下の選択肢しか表示されませんが、使用されている通りの名前の中には、近くのいくつかの町で使用されているものがあります。
func updateSearchResults(for searchController: UISearchController) {
guard let mapView = mapView,
let searchBarText = searchController.searchBar.text else { return }
let request = MKLocalSearch.Request()
request.naturalLanguageQuery = searchBarText
request.region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 51.6039482, longitude: 7.2675932),
span: MKCoordinateSpan(latitudeDelta: 15000, longitudeDelta: 15000))
request.region = mapView.region
let search = MKLocalSearch(request: request)
search.start { response, error in
guard let response = response else {
print("Error: \(error?.localizedDescription ?? "Unknown error").")
return
}
self.matchingItems = []
for item in response.mapItems {
self.matchingItems.append(item)
}
self.tableView.reloadData()
}
}
要求は、入力を介して町の間でも切り替わります。1 文字おきに町 A で、それ以外は町 B です。どこが間違っているのでしょうか。このクエリで設定しなかったものは何ですか?