为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有双重请求的情况下使用 Google Places API 获取某种类型的经纬度列表?

如何在没有双重请求的情况下使用 Google Places API 获取某种类型的经纬度列表?

翻过高山走不出你 2021-10-28 15:17:15
这是我的代码mGeoDataClient.getAutocompletePredictions("Supermarket", null, null).addOnSuccessListener {        it.forEach {            it.placeId?.let {                mGeoDataClient.getPlaceById(it).addOnSuccessListener {                    val marker = it[0].latLng                    val name = it[0].name.toString()                    mMap.addMarker(MarkerOptions().position(marker).title(name))                }            }        }    }对于它发现的每个超市,只要自动完成预测中不包含此信息,只包含地点 ID,它就必须再次请求获取纬度。有没有更好的方法来做到这一点?
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

据我所知,您无法保存两次调用,但是由于您要返回一个列表,因此您可以使用 getPlaceById(String... placeIds) 调用来保存 n 个调用。


mGeoDataClient.getAutocompletePredictions("Supermarket", null, null).addOnSuccessListener {

    it.map{ it.placeId}.filterNotNull().toTypedArray().let {

        mGeoDataClient.getPlaceById(*it).addOnSuccessListener {

            it.forEach{

                val marker = it.latLng

                val name = it.name.toString()

                mMap.addMarker(MarkerOptions().position(marker).title(name))

            }

        }

    }

}


查看完整回答
反对 回复 2021-10-28
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信