如何在Google Autocomplete iOS中仅获取印度城市名称?

时间:2018-07-05 08:17:46

标签: ios swift google-maps autocomplete

我只想在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(string:“ 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 :(得分:2)

当您使用Google SDK时,会使用

El Captain答案。如果您使用的是API,请使用以下网址:https://maps.googleapis.com/maps/api/place/autocomplete/json?input= search_str &types = geocode&language = zh-CN&key = api-key &components = country:IN。

有关更多详细信息,您可以使用我的repository。并检查URL,我正在做的事情。这是100%正常工作。

您可以要求任何进一步的帮助。

答案 1 :(得分:1)

您可以将GMSAutocompleteFiltercountry一起使用

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

选中此link