【问题标题】:Retrofit2 call for android google maps Api not workingRetrofit2 调用 android 谷歌地图 Api 不起作用
【发布时间】:2020-11-23 10:29:21
【问题描述】:

我在一个 android 项目中使用改造,以便能够调用 google maps api 并获得地点的自动完成建议。我正在为调用传递一个地址(字符串参数类型)。 RetrofitCaller 类的 start 方法如下所示:

private val BASE_URL = "https://maps.googleapis.com/maps/"
fun start(address: String) {
    val gson = GsonBuilder()
        .setLenient()
        .create()
    val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create(gson))
        .build()
    val placeAutoCompleteAPI: PlaceAutoCompleteAPI =
        retrofit.create(PlaceAutoCompleteAPI::class.java)
    val call: Call<PredictionResponse?>? = placeAutoCompleteAPI.loadPredictions(address)
    call?.enqueue(this)
}

PlacesAutoCompleteApi 具有带有 loadPredictions 函数的 http 请求:

@GET("api/place/autocomplete/json?types=address&key=AIzaSyApUcl88FpB4xHH0HS9FW4WC4wHaJu3VVU")
fun loadPredictions(@Query("input") address: String?): Call<PredictionResponse?>?

但是我无法从服务器获得响应。我对从服务器查询返回的数据类型使用 PredictionResponse 和 Prediction 类。

代码或方法有什么问题?

提前谢谢你, 兰普罗斯

【问题讨论】:

  • 你为什么不使用Android SDK?

标签: android api kotlin maps retrofit


【解决方案1】:

我对 editText 使用位置自动完成功能,它的工作原理如下:

创建谷歌云帐户并为自己获取一个 API 密钥(如果您想使用自动完成功能,您可能拥有该密钥)。您在那里设置了 API 必须工作的包。

在清单中添加以下内容:

<meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

在 gradle 中使用

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.libraries.places:places:2.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'

如果有人按下编辑文本,则只有 3 行代码:

val fields = listOf(Place.Field.ID, Place.Field.NAME, Place.Field.LAT_LNG, Place.Field.ADDRESS)
                    val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.OVERLAY, fields).build(this@AddPlaceActivity)
                    startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE)

如果不需要,可以删除 lat 和 lng 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多