这是我的代码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))
}
}
}
}
添加回答
举报
0/150
提交
取消