在 Kotlin 上为 Google 地图 API 创建 dinamicaly 标记并通过变量访问



我正在制作一个项目,我需要在其中添加和删除一些动态创建的标记。 我以这种方式创建我的标记:

private fun AddMarkerFromArray(name:String, adrs:String,cod:String,imgSrc:String){
val info = MarkerDataNormal(name, adrs,
cod )
val markerOptions = MarkerOptions()
markerOptions.position(LatLng(0.0,0.0))
.title("Location Details")
.snippet("I am custom Location Marker.")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)
)
val customInfoWindow = CustomInfoWindowGoogleMap(this)
mMap.setInfoWindowAdapter(customInfoWindow)
val spot: Marker = mMap.addMarker(markerOptions)
spot.tag = info
// spot.showInfoWindow()
}

这是代码的其余部分:

data class MarkerDataNormal(val mLocatioName: String,
val mLocationAddres: String,
val mLocationCood: String)
class CustomInfoWindowGoogleMap(val context: Context) : GoogleMap.InfoWindowAdapter {
override fun getInfoContents(p0: Marker?): View {
var mInfoView = (context as Activity).layoutInflater.inflate(R.layout.markernormal, null)
var mInfoWindow: MarkerDataNormal? = p0?.tag as MarkerDataNormal?
mInfoView.txtNombre.text = mInfoWindow?.mLocatioName
mInfoView.txtDireccion.text = mInfoWindow?.mLocationAddres
mInfoView.txtCoordenadas.text = mInfoWindow?.mLocationCood
return mInfoView
}
override fun getInfoWindow(p0: Marker): View? {
return null
}
}

所以我正在使用该功能使 apear 成为我需要的所有标记,它们显示正确,但我不能只clear()一个原因,因为它们中的每一个都是"斑点">

如何更改变量的名称或为每个变量分配一个 ID 以供以后访问?

我认为您应该将对标记对象的引用存储在List<Marker>中。这样,您以后就可以访问这些参考资料。

相关内容

  • 没有找到相关文章

最新更新