2

I've tried to generate a likelihood list of places with the currentPlaceWithCallback, which works fine. However, I'm having difficult figuring out a way to insert the information gathered from this likelihood list into the view of the GMSAutocompleteViewController / GMSAutocompleteResultsViewController before the user starts typing a search (this functionality works fine).

Any suggestions would be greatly appreciated!

func generateLikelihoodListViaPlacesClient() {

    placesClient.currentPlaceWithCallback { (likelihoodlist, error) -> Void in

        if error != nil {
            println("Current Place error: \(error!.localizedDescription)")
            return
        }

        for likelihood in likelihoodlist!.likelihoods {

            let nearestPlace = likelihoodlist!.likelihoods.first
            println(nearestPlace)

            if let likelihood = likelihood as? GMSPlaceLikelihood {
                let place = likelihood.place
                self.placesArray!.insert(place.name, atIndex: 0)

                println("Current Place name \(place.name) at likelihood \(likelihood.likelihood)")
                println("Current Place address \(place.formattedAddress)")
                println("Current Place attributions \(place.attributions)")
                println("Current PlaceID \(place.placeID)")
            }
        }
    }
}

My current GMSAutocompleteViewController is presented after clicking on a UITextField and triggering the EditingDidBegin textfield delegate function. I've set the bounds by using my location manager which has already been previously used:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    if let newLocation = locations.last {
        println("#######################")
        println("\(newLocation.coordinate)")
        println("#######################")

        // Creates northeast and southwest coordinate bounds for rectangle that autocompleteController returns results in
        let currentCoordinate2D : CLLocationCoordinate2D = newLocation.coordinate
        let northEastCoordinate2DWithBearing : CLLocationCoordinate2D = locationWithBearing(270, distanceMeters: 500, origin: currentCoordinate2D)
        let southWestCoordinate2DWithBearing : CLLocationCoordinate2D = locationWithBearing(90, distanceMeters: 500, origin: currentCoordinate2D)

        let bounds : GMSCoordinateBounds = GMSCoordinateBounds(coordinate: northEastCoordinate2DWithBearing, coordinate: southWestCoordinate2DWithBearing)
        autocompleteController.autocompleteBounds = bounds

        // Restricts filter to only businesses
        let filter : GMSAutocompleteFilter = GMSAutocompleteFilter()
        filter.type = .Establishment
        autocompleteController.autocompleteFilter = filter

        if #available(iOS 9.0, *) {

        } else {
            // Fallback on earlier versions
            locationManager.stopUpdatingLocation()
        }

    }
}
Daniel Hsu
  • 96
  • 4

0 Answers0