问题描述
对于一个应用程序,我已经实现了Apple MapKit,但是当我搜索时,我还会获得诸如餐馆等的本地地点。如何过滤结果以便仅获得城市?
我正在使用下面的代码通过UITextField的搜索查询将自动完成建议填充到tableView中。
public 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 = mapView.region
let search = MKLocalSearch(request: request)
search.start { response,_ in
guard let response = response else {
return
}
self.matchingItems = response.mapItems
self.tableView.reloadData()
}
}
解决方法
您可以使用MKPointOfInterestFilter
let request = MKLocalSearch.Request()
request.pointOfInterestFilter = MKPointOfInterestFilter.excludingAll
request.naturalLanguageQuery = searchBarText
request.region = mapView.region