【发布时间】:2023-03-25 13:48:01
【问题描述】:
我正在 kotlin 中实现代码以在谷歌地图中显示地址。我有存储在 Firebase 中的地址。我正在提取数据并将地址转换为字符串,然后尝试从中找到纬度和经度。这是我获取纬度和经度的代码:
private fun getLocationFromAddress(context: Context, addkey: String?): LatLng? {
val coder = Geocoder(context)
val address: List<Address>
var p1: LatLng? = null
var strAddress = ""
try {
val user = FirebaseAuth.getInstance().currentUser
val userid = user?.uid
mRef = FirebaseDatabase.getInstance().reference.child("users").child(userid.toString()).child("users")
mRef.child(addkey.toString()).addValueEventListener(object: ValueEventListener{
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
strAddress = p0.child("****").child(addkey.toString()).child("***").getValue(String::class.java)
}
})
address = coder.getFromLocationName(strAddress, 5)
if (address == null) {
return null
}
val location = address[0]
p1 = LatLng(location.latitude, location.longitude)
} catch (ex: IOException) {
ex.printStackTrace()
}
return p1
}
但是,我在地址 = coder.getFromLocationName(strAddress, 5) 处收到类型不匹配错误。
它说:“类型不匹配。 必需:列出“我的项目名称.com”。地址 找到:(可变)列表 android.location.Address!>!
【问题讨论】:
标签: android layout kotlin google-geocoder