代码之家  ›  专栏  ›  技术社区  ›  TechChain

如何在iOS中只过滤GMSAutocompleteResultsViewController中的学校?

  •  0
  • TechChain  · 技术社区  · 6 年前

    我正在使用GMSAutocompleteResultsViewController在iOS中搜索位置。我写下地点的名字,然后根据关键字得到结果。但问题是我只想搜索学校。所以,如果我键入任何地名,如果它是学校,那么我应该出现在结果中,否则。

    只显示几个过滤器,如机构,地区,城市,地址等,但在安卓系统中,它是有学校过滤器

    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
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   ielyamani    6 年前

    显然,在iossdk中,支持的位置类型只有 geocode , address , establishment , region city .

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