我尝试使用数据库中的数据向Google地图添加标记。我的表是:
CREATE TABLE `markers` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 60 ) NOT NULL ,
`lat` FLOAT( 10, 6 ) NOT NULL ,
`lng` FLOAT( 10, 6 ) NOT NULL
)
我想在google地图中添加标记而不使用:
final LatLng Hospital = new LatLng(21 , 57);
Marker Hospital= googleMap.addMarker(new MarkerOptions().position(Hospital ).title("Hospital"));
如何为存储在数据库中的所有位置添加标记?
答案 0 :(得分:1)
创建Location
标记的模型保存infor包括name, Lat, Lng
:
从数据库创建函数getAllMarker:
public List<Marker> getAllMarker() {
List<String> result = new ArrayList<>();
String selectQuery = "SELECT * FROM markers";
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
result.add(new Location(cursor.getString(cursor.getColumnIndex("name")), cursor.getFloat(cursor.getColumnIndex("lat")), cursor.getFloat(cursor.getColumnIndex("lng"))));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return result;
}
将标记添加到地图:
for(Location l: db.getAllMarker){
mMap.addMarker(new MarkerOptions().position(new LatLng(l.getLat(), l.getLng())).title(l.getName());
}