首页 > 解决方案 > 如何在 Kotlin 中解析 Mapbox 反向地理编码的响应

问题描述

我在我的 android Kotlin应用程序中使用 Mapbox,我执行反向地理编码并期望获得该地点的完整地址:

这是我的代码:

val geoCoding = MapboxGeocoding.builder()
  .accessToken(accessToken)
  .country("eg")
  .query(Point.fromLngLat(long, lat))
  .geocodingTypes(GeocodingCriteria.TYPE_PLACE)
  .build()
println(geoCoding)

我从这条线上得到的回应println(geoCoding)是:

Geooding{query=31.23944,30.05611, mode=mapbox.places, accessToken="My access token are shown here" , baseUrl=https://api.mapbox.com, country=eg, proximity=null, geocodingTypes=place, autocomplete=null, bbox=null, limit=null, languages=null, reverseMode=null, fuzzyMatch=null, clientAppName=null

因此,正如您所见,根本没有显示任何信息,尽管如果我在我的 chrome 浏览器中使用普通 api URL 执行查询,则会显示所有信息

标签: androidkotlinmapboxmapbox-android

解决方案


因为从代码中看不到它......你确定你在打电话吗

import retrofit2.Call
import retrofit2.Callback

    geoCoding.enqueueCall(object : Callback<GeocodingResponse> {
        override fun onFailure(call: Call<GeocodingResponse>, t: Throwable) {
            Log.d("FAILURE", t.toString())
        }

        override fun onResponse(call: Call<GeocodingResponse>, response: retrofit2.Response<GeocodingResponse>) {
            Log.d("SUCCESS", response.body().toString())
        }
    })

之后.build()


推荐阅读