You are now able to restrict the bounds for which the Google Autocomplete ViewController searches. See here: https://developers.google.com/places/ios-api/autocomplete#set_the_gmscoordinatebounds_of_autocomplete
Specifically, you can use CLLocationManager to get your lat and long. Then add offsets to get the bounding region of a map area.
You can do this without having a map in your view. For the case when you are adding an address to a field, for example.
Use https://developers.google.com/places/ios-api/autocomplete#add_a_full-screen_control to setup the full screen search. But add (Swift 2) this code in an IBAction that activates the search autocomplete:
let manager = CLLocationManager()
manager.startUpdatingLocation()
let lat = manager.location!.coordinate.latitude
let long = manager.location!.coordinate.longitude
let offset = 200.0 / 1000.0;
let latMax = lat + offset;
let latMin = lat - offset;
let lngOffset = offset * cos(lat * M_PI / 200.0);
let lngMax = long + lngOffset;
let lngMin = long - lngOffset;
let initialLocation = CLLocationCoordinate2D(latitude: latMax, longitude: lngMax)
let otherLocation = CLLocationCoordinate2D(latitude: latMin, longitude: lngMin)
let bounds = GMSCoordinateBounds(coordinate: initialLocation, coordinate: otherLocation)
let autocompleteController = GMSAutocompleteViewController()
autocompleteController.autocompleteBounds = bounds
autocompleteController.delegate = self
self.presentViewController(autocompleteController, animated: true, completion: nil)
I figured this out with help from the Google Docs and this post:
Moving a CLLocation by x meters
Adjust the parameters per the post to change your bounding region. Now I get local search results, not the default New York and beyond.
This assumes you have the Google Places API for iOS set up properly. And, your Google iOS API Key installed (in AppDelegate), the Google client installed and the AutoCompleteViewControllerDelegate extension in your ViewController.