使用 MKLocalSearch/MapKit 查找附近的餐馆?

问题描述

我正在使用 MKLocalSearch 使用 Apple 地图显示附近的位置,但找不到过滤特定类型地点的方法(在我的情况下是餐厅/酒吧/餐馆)。有没有办法像 Apple Maps App 显示带有图标的餐厅一样过滤结果?我目前正在过滤空字幕并搜索附近的字幕,但这还不够具体。 MKLocalSearch 的代码

extension LocationService: MKLocalSearchCompleterDelegate {

    func completerDidUpdateResults(_ completer: MKLocalSearchCompleter) {
        self.searchResults = completer.results.filter({ $0.subtitle != "Search Nearby" && $0.subtitle != "" })
        self.status = completer.results.isEmpty ? .noresults : .result
    }

    func completer(_ completer: MKLocalSearchCompleter,didFailWithError error: Error) {
        self.status = .error(error.localizedDescription)
    }
}

解决方法

您在搜索中考虑了错误的位置。您需要设置搜索请求的 pointOfInterestFilter before 进行搜索。