我正在尝试通过 Google Places 在 Google Maps 上实现搜索。但是谷歌搜索出现了

Posted

技术标签:

【中文标题】我正在尝试通过 Google Places 在 Google Maps 上实现搜索。但是谷歌搜索出现了【英文标题】:I'm trying to implement search on Google Maps via Google Places. But google search emerges 【发布时间】:2021-01-11 00:58:46 【问题描述】:

我正在尝试通过 Google 地方信息在 Google 地图上实现搜索。在我的 xml 中,我使用 AutoCompleteTextView 元素。但是当我点击search bar - 谷歌搜索出现 为什么? 是否可以在没有adapter 的情况下使用我的searchbar 实现谷歌位置?

3sec video screen

【问题讨论】:

【参考方案1】:

来自docs:

要将 AutocompleteSupportFragment 添加到您的应用,请执行以下步骤:

    将片段添加到活动的 XML 布局中。 为您的活动或片段添加监听器。

布局

<fragment android:id="@+id/autocomplete_fragment"
  android:layout_
  android:layout_
  android:name="com.google.android.libraries.places.widget.AutocompleteSupportFragment"
  />

代码

 // Initialize the AutocompleteSupportFragment.
    val autocompleteFragment =
        supportFragmentManager.findFragmentById(R.id.autocomplete_fragment)
            as AutocompleteSupportFragment

    // Specify the types of place data to return.
    autocompleteFragment.setPlaceFields(listOf(Place.Field.ID, Place.Field.NAME))

    // Set up a PlaceSelectionListener to handle the response.
    autocompleteFragment.setOnPlaceSelectedListener(object : PlaceSelectionListener 
        override fun onPlaceSelected(place: Place) 
            // TODO: Get info about the selected place.
            Log.i(TAG, "Place: $place.name, $place.id")
        

        override fun onError(status: Status) 
            // TODO: Handle the error.
            Log.i(TAG, "An error occurred: $status")
        
    )

【讨论】:

不幸的是没有。我发现的只是 - 您可以创建自定义搜索 UI 来替代自动完成小部件提供的 UI。为此,您的应用程序必须以编程方式获取位置预测。您的应用可以通过调用 PlacesClient.findAutocompletePredictions() 并传递带有以下参数的 FindAutocompletePredictionsRequest 对象,从自动完成 API 获取预测的地名和/或地址列表。从这里 - developers.google.com/places/android-sdk/… 你想做什么? 阅读文档、编写代码和在媒体上共享代码。我已经写了这个适配器。简而言之 - 需要在搜索栏下方编写我自己的回收器视图并在那里加载 API 的工作结果。一年前,谷歌完全改变了 API,根本不支持旧版本。我在网上没有找到任何材料。所有东西 - 在 Java 或旧 API 上

以上是关于我正在尝试通过 Google Places 在 Google Maps 上实现搜索。但是谷歌搜索出现了的主要内容,如果未能解决你的问题,请参考以下文章

未启用 iOS 版 Places API

尝试将 Google Places API 与 JQuery 的 getJSON 函数一起使用

Google Places web api 不与 superagent 合作

Google Places AutoComplete 小部件正在为每个请求生成一个新的会话密钥

通过 API 向 Google Places 添加新地点的 PHP 代码

在 Google Places 自动完成 iOS api 中包含距离