Как получить объект Place из autocompletePredictions в New Place SDK - PullRequest
0 голосов
/ 23 мая 2019

Я интегрировал новый Place SDK, предоставленный Google.

Мой метод автозаполнения приведен ниже.Как я могу получить объект Place из ответа?

private fun getPlaceAutoComplete(placesClient: PlacesClient, query: String) {
        val token = AutocompleteSessionToken.newInstance()
        val request = FindAutocompletePredictionsRequest.builder()
                .setSessionToken(token)
                .setQuery(query)
                .build()
        placesClient.findAutocompletePredictions(request).addOnSuccessListener { response ->
            placeList.clear()// Place List is a List of Place Instances
            for (prediction in response.autocompletePredictions) {

                var place = prediction.getPlace()// There is no option to ge the Place.
                placeList.add(place)
            }
            setAdapter(placeList)
        }.addOnFailureListener { exception ->
            if (exception is ApiException) {
                Log.e(TAG, "Place not found: " + exception.statusCode)
            }
        }

    }

1 Ответ

1 голос
/ 23 мая 2019

Класс AutoCompletePrediction имеет метод getPlaceId() для получения идентификатора места .

Чтобы получить сам объект Place, необходимо Получить сведения о месте, используя идентификатор места , используя вызов PlacesClient.fetchPlace(). Согласно Руководству по миграции :

Звонит на fetchPlace(), инициирует Places Details SKU , стоимость которого включает запрос и любые поля данных, принадлежащие к Basic Data SKU . Вы также можете запросить Контактные данные и Атмосферные данные за дополнительную плату. Подробнее см. Использование и оплата .

Таким образом, вам следует избегать получения всей информации о месте, если вас беспокоит стоимость.

...