Swift 4 - фильтрация API Google Адресов - PullRequest
0 голосов
/ 26 марта 2020

Я работаю в проекте Swift 4 с API Google Мест. При вводе поиска по желаемому местоположению в строке поиска мне нужно, чтобы google api возвращал только сокращенную форму состояний, а не отображал ее полностью. Пример., Милфорд, Коннектикут, США, а не Милфорд, Коннектикут, США и аналогично для всех других мест. Я приложил немного кода. Может кто-нибудь помочь мне здесь. Все ваши отзывы приветствуются. Заранее спасибо!

let filter = GMSAutocompleteFilter()

           filter.type = .city

            filter.country = "uk|country:fr|country:us"


            placesClient.autocompleteQuery(searchText, bounds: nil, filter: filter, callback: {(results, error) -> Void in

                if let _ = error {

                    autocompletionFailure?()

                }

                if let results = results {

                    //Filtering the results for given countries, so that only relevant data should be displayed.

                    let filteredItems = results.filter { (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.guam)) || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.canada)) || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.usa) ) || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.unitedStates))  || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.puertoRico)) || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.northernMarianaIslands)) || (LocalisationHelper.containsString(apiValue: $0.attributedSecondaryText?.string.lowercased() ?? "", localValue:Constants.SearchCountriesName.virginIslands))}


                    self._searchResults.value = filteredItems

                    print("filters: \(filteredItems)")

                    searchCompleter?()

                }
...