Есть ли способ предварительно заполнить GMSAutocompleteViewController массивом данных о текущих близлежащих местах?

Я попытался сгенерировать список вероятностей мест с помощью currentPlaceWithCallback, который работает нормально. Однако мне сложно найти способ вставить информацию, собранную из этого списка вероятностей, в представление GMSAutocompleteViewController / GMSAutocompleteResultsViewController, прежде чем пользователь начнет вводить поиск (эта функция работает нормально).

Любые предложения будут ценны!

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)")
            }
        }
    }
}

Мой текущий GMSAutocompleteViewController отображается после нажатия на UITextField и запуска функции делегирования текстового поля EditingDidBegin. Я установил границы с помощью моего менеджера местоположений, который уже использовался ранее:

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()
        }

    }
}

0 ответов

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