Я успешно применил места Google в своем приложении. Теперь я пытаюсь отфильтровать результаты, вот мой массив результатов.Google places getPlaceID возвращает ненулевой массив, но фильтр возвращает нулевые результаты
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, null);
Второй параметр для getCurrentPlace
является опцией фильтра. Я использовал null
, однако я понятия не имею, как добавлять фильтры к результатам. Я посмотрел на place types.
Как я библиотеку рядом я попытался это:
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, Place.TYPE_LIBRARY);
Однако я получаю ошибку
Error:(98, 118) error: incompatible types: int cannot be converted to PlaceFilter
Я смотрел на некоторые должности StackOverflow, но они довольно так что я не знаю, верят ли они больше. Все они говорят, что фильтры еще не полностью реализованы в местах Google. Это все еще так? если нет, то может кто-то пожалуйста, помогите
Благодаря
Update 1:
Так я нашел this link найти placeIDs для каждого типа: Только для тестирования я сделал это (в основном он должен печатать все места в моем текстовом поле снова, как если бы он был пустой):
ArrayList<String> filter = new ArrayList<>();
for (int i =0; i< 5000; i++){
filter.add(String.valueOf(i));
}
PlaceFilter filterClosed = new PlaceFilter(false, filter);
, а затем применять его:
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);
Однако я больше не располагаю места в текстовом поле, я получаю любую информацию о местоположении. Любая идея почему?
Update 2 Работы с информацией, предоставленной вами в вашем комментарии, я получил placeIDs используя метод GetId, пожалуйста, обратитесь к скриншоту я загрузил на моем комментарии (StackOverflow не позволяет мне загружать больше ссылок). Итак, он дает мне идентификаторы, почему он ничего не возвращает, когда я применяю фильтры к результату? может ли кто-нибудь еще попробовать это? Вот мой код:
PlaceFilter filterClosed = null;
ArrayList<String> filter = new ArrayList<>();
for (int i =0; i < 45; i++){
filter.add(String.valueOf(i));
}
filterClosed = new PlaceFilter(false, filter);
txtLocation.setText(String.valueOf(filterClosed.getPlaceIds()));
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);
Я не понимаю, как использовать места соответствует BOOL VAL
Как именно я должен писать этот код? потому что, как вы предложили выше, вы создали массив, добавили некоторые типы (которые я понимаю). Но что здесь placeIDs? – ElegantCode
и фильтры никогда не используются – ElegantCode
Моя ошибка: это должны были быть фильтры. Я обновил ответ. –