要从Room数据库中添加谷歌地图标记,需要按照以下步骤进行操作:
implementation 'androidx.room:room-runtime:2.3.0'
implementation 'androidx.room:room-ktx:2.3.0'
kapt 'androidx.room:room-compiler:2.3.0'
@Entity(tableName = "locations")
data class LocationEntity(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
val latitude: Double,
val longitude: Double,
val name: String
)
@Dao
interface LocationDao {
@Query("SELECT * FROM locations")
fun getAllLocations(): List
@Insert
fun insertLocation(location: LocationEntity)
@Delete
fun deleteLocation(location: LocationEntity)
}
@Database(entities = [LocationEntity::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun locationDao(): LocationDao
}
val db = Room.databaseBuilder(applicationContext, AppDatabase::class.java, "database-name").build()
val locationDao = db.locationDao()
val location = LocationEntity(latitude, longitude, name)
locationDao.insertLocation(location)
val locationDao = db.locationDao()
val locations = locationDao.getAllLocations()
for (location in locations) {
val markerOptions = MarkerOptions().position(LatLng(location.latitude, location.longitude)).title(location.name)
googleMap.addMarker(markerOptions)
}
这样,你就可以从Room数据库中添加谷歌地图标记了。请注意,上述代码仅为示例,你需要根据自己的需求进行适当的修改。