Уклон Google Places приводит к определенному региону

Я использую официальную Документацию Google для создания поиска адреса.

В версии для Android я могу сместить результат в моей области.

Например, набрав "123 Main St", вы увидите Main st в моем городе, прежде чем показывать мне другие результаты.

В iOS я не могу понять, как это сделать. Я использую "Добавить полноэкранный контроль" с GMSAutocompleteViewController делегировать.

E сть 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);
                          }
                        }];
}

Любая помощь?

2 ответа

Вы можете установить границы на 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!

Другие вопросы по тегам