Как извлечь объекты местоположения из базы данных? - PullRequest
1 голос
/ 17 ноября 2010

Я хочу сохранить объекты Location в моей базе данных и затем загрузить их. Как я могу построить объект Location из его атрибутов?

  • Должен ли я создать пустое место и затем установить атрибуты? (Если да, то как?)
  • Должен ли я использовать свою базу данных в качестве LocationProvider? (Если да, то как?)

Спасибо!

РЕДАКТИРОВАТЬ: Единственное работающее решение, которое я нашел до сих пор, это получить текущее местоположение и переопределить все атрибуты ... Должен быть лучший способ!

мой код:

public Location selectLocationById(int id){
    String query = "SELECT * FROM " + LOCATIONS_TABLE + " WHERE id = " + id + ";";
    Cursor c = db.rawQuery(query, null);
    Location l = null;
    if(c.getCount() == 1) {
        c.moveToFirst();
        if(c.getColumnCount() == 8){
            l = new Location(MyProject.getCurrentLoc());
            l.setAccuracy(c.getFloat(1));
            l.setAltitude(c.getDouble(2));
            l.setBearing(c.getFloat(3));
            l.setLatitude(c.getDouble(4));
            l.setLongitude(c.getDouble(5));
            l.setSpeed(c.getFloat(6));
            l.setTime(c.getLong(7));
        }
    }

    if(c != null && !c.isClosed()) {
        c.close();
    }

    return l;
}

1 Ответ

3 голосов
/ 17 ноября 2010

Это имеет смысл.Я полагаю, что вы можете использовать

l = new Location(null);

, чтобы вам не нужно было указывать свое текущее местоположение.Это все равно должно создать новое местоположение, но с пустой строкой поставщика, используя другой конструктор Location:

Location(String provider)

Смотрите http://developer.android.com/reference/android/location/Location.html

...