Получить широту и долготу из базы данных SQLite для использования в Android MapOverlay - PullRequest
3 голосов
/ 02 сентября 2011

Если я сохраню широту и долготу группы местоположений в базе данных SQLite, как мне получить эти значения и поместить их каждое в класс OverlayItem для использования в коде Google Map?

Имя базы данных: database

Название таблицы: place

Поля в place Таблица:

  • id
  • title
  • description
  • latitude
  • longitude

Как получить данные о широте и долготе каждого местоположения и добавить их в ArrayList itemOverlay?

У вас есть идеи или пример? Большое вам спасибо

1 Ответ

6 голосов
/ 02 сентября 2011

Вы хотели бы сделать запрос, подобный этому:

SELECT title, description, latitude, longitude
FROM place

Что можно сделать в Android следующим образом:

    /* 
       databaseObject = YourDbHelper#getReadableDatabase();
    */
    ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
    Cursor locationCursor = databaseObject.query("place", new String[]{
            "title", "description", "latitude", "longitude"}, null, null,
            null, null, null);

    locationCursor.moveToFirst();

    do {
        String title = locationCursor.String(locationCursor
                .getColumnIndex("title"));
        String description = locationCursor.String(locationCursor
                .getColumnIndex("description"));
        int latitude = (int) (locationCursor.getDouble(locationCursor
                .getColumnIndex("latitude")) * 1E6);
        int longitude = (int) (locationCursor.getDouble(locationCursor
                .getColumnIndex("longitude")) * 1E6);

        items.add(new OverlayItem(new GeoPoint(latitude, longitude), title,
                description));
    } while (locationCursor.moveToNext());

Вам необходимо умножить значения на 1E6, потому что Android использует целочисленное представление значений lat / long. Если вы уже позаботились об этом при заполнении базы данных, пропустите умножение и используйте locationCursor.getInt(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...