К сожалению, автозаполнение мест не поддерживает детализированные типы в фильтре.Если вы посмотрите документацию, вы увидите, что поддерживаются только следующие типы:
- TYPE_FILTER_ADDRESS
- TYPE_FILTER_CITIES
- TYPE_FILTER_ESTABLISHMENT
- TYPE_FILTER_GEOCODE
- TYPE_FILTER_REGIONS
source: https://developers.google.com/android/reference/com/google/android/gms/location/places/AutocompleteFilter
Та же ситуация с веб-службой автозаполнения API Places API:
https://developers.google.com/places/web-service/autocomplete#place_types
В трекере проблем Google очень старый запрос на добавление фильтра детальных типов вместо автозаполнения.Вы можете увидеть этот запрос здесь:
https://issuetracker.google.com/issues/35820774
Не стесняйтесь пометить его, чтобы добавить свой голос и подписаться на уведомления.
Если вы заинтересованы в реализации вебвызовы службы, аналогичные упомянутому вопросу, посмотрите на Java Client для Google Maps Services:
https://github.com/googlemaps/google-maps-services-java
С помощью этой библиотеки вы можете реализовать функцию текстового поиска в Java.Что-то вроде
GeoApiContext context = new GeoApiContext.Builder()
.apiKey("AIza......")
.build();
TextSearchRequest req = PlacesApi.textSearchQuery(context, "Springfield Elementary");
try {
PlacesSearchResponse resp = req.type(PlaceType.SCHOOL).await();
if (resp.results != null && resp.results.length > 0) {
for (PlacesSearchResult r : resp.results) {
//TODO: implement logic for places
}
}
} catch(Exception e) {
Log.e(TAG, "Error getting places", e);
}
Надеюсь, это поможет!