ios - 如何在 iOS 中仅过滤 GMSAutocompleteResultsViewController 中的学校?

标签 ios swift xcode google-places-api

我正在使用 GMSAutocompleteResultsViewController 在 iOS 中搜索地点。我写下地名并根据关键字获得结果。但问题是我只想搜索学校。因此,如果我输入任何地名,如果它是学校,那么我应该出现在结果中,否则不会。

GMSAutocompleteFilter 只显示一些过滤器,如机构、地区、城市、地址等。但在 android 中它有过滤器作为学校

下面是我用于搜索的代码。

class SearchLocationController: DIBaseController {

    var resultsViewController: GMSAutocompleteResultsViewController?
    var searchController: UISearchController?
    var resultView: UITextView?

    override func viewDidLoad() {
        super.viewDidLoad()

        resultsViewController = GMSAutocompleteResultsViewController()
        resultsViewController?.delegate = self

        searchController = UISearchController(searchResultsController: resultsViewController)
        searchController?.searchResultsUpdater = resultsViewController

        let filter = GMSAutocompleteFilter()
        filter.type = .establishment
        resultsViewController?.autocompleteFilter = filter

        // Put the search bar in the navigation bar.
        searchController?.searchBar.sizeToFit()
        navigationItem.titleView = searchController?.searchBar

        // When UISearchController presents the results view, present it in
        // this view controller, not one further up the chain.
        definesPresentationContext = true
        // Prevent the navigation bar from being hidden when searching.
        searchController?.hidesNavigationBarDuringPresentation = false
    }
}

// Handle the user's selection.
extension SearchLocationController: GMSAutocompleteResultsViewControllerDelegate {
    func resultsController(_ resultsController: GMSAutocompleteResultsViewController,
                           didAutocompleteWith place: GMSPlace) {
        searchController?.isActive = false
        // Do something with the selected place.

    }

    func resultsController(_ resultsController: GMSAutocompleteResultsViewController,
                           didFailAutocompleteWithError error: Error){
        // TODO: handle the error.
        print("Error: ", error.localizedDescription)
    }

    // Turn the network activity indicator on and off again.
    func didRequestAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
        UIApplication.shared.isNetworkActivityIndicatorVisible = true
    }

    func didUpdateAutocompletePredictions(_ viewController: GMSAutocompleteViewController) {
        UIApplication.shared.isNetworkActivityIndicatorVisible = false
    }
}

最佳答案

显然,在iOS SDK中,支持的地点类型只有geocodeaddressestablishmentregion城市

有关详细信息,请参阅 this .

关于ios - 如何在 iOS 中仅过滤 GMSAutocompleteResultsViewController 中的学校?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52182287/

相关文章:

ios - UITableViewCell 中的圆形图像

ios - NSDate 到具有时区偏移量的字符串

ios - 更新到 Swift 1.2 后出错

ios - Cocos2d。 Sprite 消失

ios - 在 Swift 3 中自动将 CGRectMake 更新为 CGRect

iphone - 显示系统警报 "No Mail Accounts"

ios - 在 TabBarController 和 ViewController 之间切换的最佳方法

IOS:如果 UITextField 为空,如何让占位符文本返回?

ios - 我想从SwiftUI的列表项中删除披露图标

ios - 自 iOS 10 以来,带有 startMonitoringForRegion 的 CCLocation 不再工作