猿问

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

这是我的代码


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,它就必须再次请求获取纬度。


有没有更好的方法来做到这一点?


翻过高山走不出你
浏览 131回答 2
2回答

largeQ

据我所知,您无法保存两次调用,但是由于您要返回一个列表,因此您可以使用 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))            }        }    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答