Intereting Posts
Кнопка Android Onclick Video Intent не сохраняет видео в нужном месте Android: «Не удалось выполнить« воспроизведение »в« HTMLMediaElement »: API может быть инициирован только жестом пользователя Интеграция нескольких мобильных рекламных сетей с помощью Admob Mediation Остановить или убить службу Должен ли я постоянно открывать () и закрывать () мою базу данных SQL или оставлять ее открытой? Получить текущее время в заданном часовом поясе: андроид Запретить просмотр вложенных в ScrollView прокрутки вверху экрана Save BottomNavigationView выбранный элемент во время вращения экрана Как установить Tint в NavigationView на некоторые значки Могу ли я отключить кнопку и все еще слушать клики? Android – введите имя приложения электронной почты в приложении Обработка холста и управление элементами Spacing Issue при создании макета шины в режиме ресайклера Gridlayout manager Как показать и скрыть вид в ресайклере в Android?

Получить широту и долготу из базы данных SQLite для использования в Android MapOverlay

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

Имя database : database

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

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

  • id
  • title
  • description
  • latitude
  • longitude

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

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

Вы бы хотели сделать такой запрос:

 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(...) .