Компонент расширенного поиска мест

Компонент "Расширенный поиск мест" предлагает те же функции, что и основной поиск мест. Вы также можете настроить командные кнопки компонента и применить параметры поиска и фильтрации к отзывам и медиаконтенту.

Расширенная конфигурация поиска мест

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

Настроить командные кнопки

Используйте интерфейс PlaceActionProvider в AdvancedPlaceSearchFragment, чтобы определить и настроить кнопки действий.

Требования к визуальному указанию авторства

Расширенный поиск мест с настраиваемыми кнопками
Результат поиска мест с настраиваемой кнопкой

Важно! Вы должны четко сообщать пользователям, когда кнопка специального действия будет передавать их информацию третьим лицам, не связанным с Google. Подробнее о требованиях по указанию авторства.

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

Как использовать поиск и фильтры

Используйте интерфейсы SearchMediaOptions и SearchReviewsOptions в AdvancedPlaceSearchFragment, чтобы включить поиск и фильтрацию медиаконтента или отзывов.

Примеры расширенного поиска мест

Как создать фрагмент AdvancedPlaceSearch

Kotlin

// Initialize Places first
Places.initializeWithNewPlacesApiEnabled(context, API_KEY)

// How the fragment is created
AdvancedPlaceSearchFragment.newInstance(
          selectedContent,
          orientation,
          R.style.BrandedPlaceDetailsTheme,
        )

// Fragment supports the same configs that PlaceSearchFragment supported
fragment.preferTruncation = false
fragment.attributionPosition = AttributionPosition.BOTTOM
fragment.selectable = true

        

Kotlin

// Performing a search works the same as with a regular placeSearchFragment.

advancedPlaceSearchFragment.configureFromSearchByTextRequest(searchByTextRequest)

advancedPlaceSearchFragment.configureFromSearchNearbyRequest(searchNearbyRequest)


        

Прослушивание результатов

Kotlin

// attach the existing PlaceSearchFragmentListener to get notified about when places load or are selected from the results list.  
override fun onAttachFragment(fragment: Fragment) {
    super.onAttachFragment(fragment)
    when (fragment) {
      // Reuse the placeSearchFragmetnListener from the Essentials version
      is AdvancedPlaceSearchFragment -> fragment.registerListener(placeSearchFragmentListener)
      // use placeListFragmentListener, its functionally identical but with a new name.  
      is AdvancedPlaceListFragment -> fragment.registerListener(advancedPlaceListFragmentListener)
    }
}