Как получить только названия городов Индии в Google Autocomplete iOS? - PullRequest
0 голосов
/ 05 июля 2018

Я хочу отображать только названия городов из Индии в автозаполнении Google.

Мой PAI: https://maps.googleapis.com/maps/api/place/autocomplete/json?input=(strSearch)&country=in&language=en&key=MyKeyhare

Вот пример строки поиска: Hy (OR) Hyd

Когда я отправляю: Hy. Ниже отображаются названия городов

Hyderabad, Telangana, India
Hyattsville, MD, USA
Hyōgo Prefecture, Japan
Hyères, France
Hyvinkää, Finland

Когда я отправляю: Hyd. Ниже отображаются названия городов

Hyderabad, Telangana, India
Hyderabad, Pakistan
Hyde Park, Newtownabbey, UK
Hyderguda, Hyderabad, Telangana, India
Hyde Street, San Francisco, CA, USA

отображает все совпадающие названия из всех стран, не только из Индии. Но я хочу только названия индийских городов. Возможно ли это ...

let url = NSURL (строка: "https://maps.googleapis.com/maps/api/place/autocomplete/json?input=(strSearch)&country=in&language=en&key=MyKey")

    let task = URLSession.shared.dataTask(with: url! as URL) { (data, response, error) -> Void in


        do {
            if data != nil{
                let dic = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableLeaves) as!  NSDictionary
                //                    print(dic)
                let status = dic["status"] as! String

                if status == "REQUEST_DENIED" {
                } else if status == "ZERO_RESULTS" {
                } else if status == "INVALID_REQUEST" {
                } else {
                    let dictionary = dic["predictions"] as! NSArray
                    //                        print((dictionary[0] as! [String:Any])["description"]!)
                    for index in 0..<dictionary.count {
                        print((dictionary[index] as! [String:Any])["description"]!)
//                            print((dictionary[index] as! [String:Any])["place_id"]!)
                        self.displayItems.append((dictionary[index] as! [String:Any])["description"]! as! String)
                    }
//                        print("*******************************************")


                    }
                }

            }
        } catch {
            print("Error")
        }
    }

    task.resume()

}

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Ответ El Captain используется при использовании Google SDK. Если вы используете API, используйте этот URL: https://maps.googleapis.com/maps/api/place/autocomplete/json?input=search_str&types=geocode&language=en&key=api-key&components=country:IN.

Для более подробной информации вы можете использовать мой репозиторий . И проверьте URL, как я делаю. Это 100% работает.

Любая дополнительная помощь, которую вы можете попросить.

0 голосов
/ 05 июля 2018

Вы можете использовать GMSAutocompleteFilter с country, как

GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.type = kGMSPlacesAutocompleteTypeFilterNoFilter;
filter.country = @"IN";

Проверить ссылку

...