使用数据库中的数据添加标记谷歌地图

时间:2015-11-27 07:01:15

标签: android mysql google-maps google-maps-api-3

我尝试使用数据库中的数据向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"));  

如何为存储在数据库中的所有位置添加标记?

1 个答案:

答案 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());
    }