Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我如何设置城市的边界?_Ios_Swift_Google Maps - Fatal编程技术网

Ios 我如何设置城市的边界?

Ios 我如何设置城市的边界?,ios,swift,google-maps,Ios,Swift,Google Maps,我有城市名称,即德克萨斯州奥斯汀。在搜索机构时,我需要使用该城市作为边界参数。你知道怎么做吗 let filter = GMSAutocompleteFilter() filter.type = .establishment placesClient.autocompleteQuery(textField.text!, bounds: nil, filter: filter, callback: {(results, error) -> Vo

我有城市名称,即德克萨斯州奥斯汀。在搜索机构时,我需要使用该城市作为边界参数。你知道怎么做吗

        let filter = GMSAutocompleteFilter()
        filter.type = .establishment
        placesClient.autocompleteQuery(textField.text!, bounds: nil, filter: filter, callback: {(results, error) -> Void in
            if let error = error {
                print("Autocomplete error \(error)")
                return
            }

            if let results = results {
                print(results)
            }
        })

我没有使用GMSAutocompleteFilter,但我已经使用google api实现了,因此我在这里分享一些示例代码,请尝试以下方法:

以搜索栏为例,实现其委托并调用GooglePlacesAPI,如下所示。在这里,您需要传递城市名称。因此,在调用此api之后,您将得到结果。根据这个结果,我将地名存储在两个不同的字符串中,即strmaintile和strSubTitle。最后重新加载表以显示列表。您还必须实现tableview委托和数据源方法来显示表上的列表。这里您需要使用tableview来显示搜索文本查询

    // MARK:- SearchBar Delegate methods
    func searchBar(searchBar: UISearchBar,textDidChange searchText: String)
    {
        let strCityString = "your city name"
        let session = NSURLSession.sharedSession()
        let apiServerKey = "Put here your apiServerkey"
        var urlString = "https://maps.googleapis.com/maps/api/place/autocomplete/json?key=\(apiServerKey)&input=\(strCityString)"+"\(searchBarObj.text!)"
        urlString = urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
        session.dataTaskWithURL(NSURL(string: urlString)!) {
            (data, response, error) -> Void in
            UIApplication.sharedApplication().networkActivityIndicatorVisible = false
            do {

                if let json = try NSJSONSerialization.JSONObjectWithData(data!, options:[]) as? [String:AnyObject] {
                    dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    let returnedPlaces: NSArray? = json["predictions"] as? NSArray//                    print("Predictions Retrunedplaces: \(returnedPlaces)")
                    self.arraySearchResults.removeAllObjects()
                    self.arraySearchResults.addObjectsFromArray(json["predictions"] as! [AnyObject])// (returnedPlaces!)
                    self.strMainTitle.removeAllObjects()
                    self.strSubTitle.removeAllObjects()
                    for index in 0..<returnedPlaces!.count {

                        if let returnedPlace = returnedPlaces?[index] as? NSDictionary {
                            var placeName = ""

                            if let name = returnedPlace["description"] as? NSString {
                                placeName = name as String
                            }

                            var fullNameArr = placeName.componentsSeparatedByString(",")
                            var strname = String()
                            let laststring:Int = fullNameArr.count - 1
                            for i in 1..<fullNameArr.count
                            {
                                if i == laststring //fullNameArr.count - 1
                                {
                                    strname += "\(fullNameArr[i])"
                                }
                                else
                                {
                                    strname += "\(fullNameArr[i])"+","
                                }

                            }
                                    self.strMainTitle.addObject(placeName.componentsSeparatedByString(",").first!)
                            self.strSubTitle.addObject(strname)
                        }
                    }
                        self.tableviewForSearchBar.reloadData()
                    })

                }
            } catch {

            }

            }.resume()
    }

您是否需要这样做:如果用户在搜索栏中搜索任何地点/位置/等,那么用户将获得特定城市/地区的所有结果?因此,在我过去的控制器中,我收集城市名称。在这个视图控制器中,他们输入一个地点,它应该预测他们进入的城市中的地点。您可以假设已经有一个var名称city,并且已经填充了一个city。