Ios 偏向Google将结果放在特定区域

Ios 偏向Google将结果放在特定区域,ios,objective-c,google-places-api,gmsautocomplete,Ios,Objective C,Google Places Api,Gmsautocomplete,我正在使用官方创建地址查找 在安卓版本中,我可以根据自己的区域来调整结果 例如,键入“123 Main St”首先显示我所在城镇的Main St,然后再显示其他结果 在iOS中,我不知道如何做到这一点。我正在使用带有GMSAutocompleteViewController委托的“添加全屏控件” 有一个GMSCoordinateBounds,但示例是地图。我没有用地图 我已经修补过类似的东西,但无法让它工作。我走对了吗 - (void) placeAutocomplete : (NSString

我正在使用官方创建地址查找

在安卓版本中,我可以根据自己的区域来调整结果

例如,键入“123 Main St”首先显示我所在城镇的Main St,然后再显示其他结果

在iOS中,我不知道如何做到这一点。我正在使用带有
GMSAutocompleteViewController
委托的“添加全屏控件”

有一个
GMSCoordinateBounds
,但示例是地图。我没有用地图

我已经修补过类似的东西,但无法让它工作。我走对了吗

- (void) placeAutocomplete : (NSString*) location : Bounds:(GMSCoordinateBounds *)bounds{                                                           
[_placesClient autocompleteQuery:location
                          bounds:bounds
                          filter:filter
                        callback:^(NSArray *results, NSError *error) {
                          if (error != nil) {
                            NSLog(@"Autocomplete error %@", [error localizedDescription]);
                            return;
                          }

                          for (GMSAutocompletePrediction* result in results) {
                            NSLog(@"Result '%@' with placeID %@", result.attributedFullText.string, result.placeID);
                          }
                        }];
}

有任何帮助吗?

您可以直接在
GMSAutocompleteViewController
上设置界限,例如:

// Present the Autocomplete view controller when the button is pressed.
@IBAction func autocompleteClicked(_ sender: UIButton) {
    let autocompleteController = GMSAutocompleteViewController()
    autocompleteController.delegate = self

    // Set bounds to inner-west Sydney Australia.
    let neBoundsCorner = CLLocationCoordinate2D(latitude: -33.843366,
                                               longitude: 151.134002)
    let swBoundsCorner = CLLocationCoordinate2D(latitude: -33.875725,
                                               longitude: 151.200349)
    let bounds = GMSCoordinateBounds(coordinate: neBoundsCorner,
                                     coordinate: swBoundsCorner)

    autocompleteController.bounds = bounds

    present(autocompleteController, animated: true, completion: nil)
}

基于您的位置创建边界,并将其设置为
GMSAutocompleteViewController的边界

func presentAddressFinder(){
     let autocompleteController = GMSAutocompleteViewController()
        autocompleteController.delegate = self
        let bounds = GMSCoordinateBounds()
        autocompleteController.autocompleteBounds = bounds.includingCoordinate(currentLocation)
    present(autocompleteController, animated: true, completion: nil)
}

此处
currentLocation
CLLocationCoordinate2D中的当前设备位置

谢谢,但是如何计算边界框的纬度/经度?你是不是正盯着你所在的中心并向外扩展20英里?我不知道上面的代码(谷歌开发网站上的copypasta),但是如果你想计算一个围绕一个Latling点的20英里边界框,SphereCalutil中的方法会有帮助()