Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
#1

Вывод множества маркеров на карту, SQLite + Gmap - Программирование Android

22.01.2016, 18:42. Просмотров 253. Ответов 0
Метки нет (Все метки)

Помогите с организацией вывода кастомных (фото из галереи) на гугл карту по координатам.
Есть класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
 
    DatabaseHelper sqlHelper;
    SQLiteDatabase db;
    Cursor userCursor;
 
    private GoogleMap mMap;
    private String imageTest;
    double lngTest, ltdTest;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        sqlHelper = new DatabaseHelper(getApplicationContext());
    }
 
    @Override
    public void onResume() {
        super.onResume();
        // открываем подключение
        db = sqlHelper.getReadableDatabase();
 
        userCursor = db.query("geotable", null, null, null, null, null, null);
 
        userCursor.moveToFirst();
 
            int imageColIndex = userCursor.getColumnIndex("image");
            int lngColIndex = userCursor.getColumnIndex("lng");
            int latlColIndex = userCursor.getColumnIndex("lat");
 
            imageTest = userCursor.getString(imageColIndex);
            lngTest = userCursor.getDouble(lngColIndex);
            ltdTest = userCursor.getDouble(latlColIndex);
 
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        // Закрываем подключения
        db.close();
        userCursor.close();
    }
 
    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng(ltdTest, lngTest), 16));
 
 
        // You can customize the marker image using images bundled with
        // your app, or dynamically generated bitmaps.
 
        googleMap.addMarker(new MarkerOptions()
                .icon(BitmapDescriptorFactory.fromPath(imageTest))
                .anchor(0.0f, 1.0f) // Anchors the marker on the bottom left
                .position(new LatLng(ltdTest, lngTest)));
 
    }
 
}
таблица с данными имеет вид
id | absolutePathToImage | lat | lng |

Как вывести все имеющиеся в таблице фото - в виде маркеров ?

Добавлено через 3 часа 26 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
 
    DatabaseHelper sqlHelper;
    SQLiteDatabase db;
    Cursor userCursor;
 
    private GoogleMap mMap;
    private String imageTest;
    double lngTest, ltdTest;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        sqlHelper = new DatabaseHelper(getApplicationContext());
    }
 
    @Override
    public void onResume() {
        super.onResume();
        // открываем подключение
        db = sqlHelper.getReadableDatabase();
 
        userCursor = db.query("geotable", null, null, null, null, null, null);
 
        if (userCursor.moveToFirst()) {
 
//        while (userCursor == null) {
            int imageColIndex = userCursor.getColumnIndex("image");
            int lngColIndex = userCursor.getColumnIndex("lng");
            int latlColIndex = userCursor.getColumnIndex("lat");
 
            do {
            // получаем значения по номерам столбцов и пишем все в лог
            imageTest = userCursor.getString(imageColIndex);
            lngTest = userCursor.getDouble(lngColIndex);
            ltdTest = userCursor.getDouble(latlColIndex);
            // переход на следующую строку
            // а если следующей нет (текущая - последняя), то false - выходим из цикла
            }
                while (userCursor.moveToNext());
        }
 
        else
    userCursor.close();
 
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        // Закрываем подключения
        db.close();
        userCursor.close();
    }
 
    @Override
    public void onMapReady(GoogleMap googleMap) {
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng(ltdTest, lngTest), 16));
 
 
        // You can customize the marker image using images bundled with
        // your app, or dynamically generated bitmaps.
 
        googleMap.addMarker(new MarkerOptions()
                .icon(BitmapDescriptorFactory.fromPath(imageTest))
                .anchor(0.0f, 1.0f) // Anchors the marker on the bottom left
                .position(new LatLng(ltdTest, lngTest)));
 
    }
    
}
В таком виде выводится только последняя картинка с координатами, подскажите как правильно заставить выводиться все если onMapReady вызывается только 1 раз
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 18:42     Вывод множества маркеров на карту, SQLite + Gmap
Посмотрите здесь:
Android Добавление маркеров на карту Google Maps API v2
Android Добавление маркеров на карту Google Maps API v2
Android При переносе приложения на карту памяти где хранятся SharedPreferences, SQLite базы и тп ?
SQLite вывод данных Android
Вывод на экран таблиц БД (SQLite) Android
Категории и вывод списка items на sqlite Android
SQLite вывод максимального значения строки Android
Android SQLite and ListView. Ввод и вывод данных
Android Вывод данных по ключевым словам. Android SQLite
Listview вывод данных и переход по нажатию на другой Listview SQLite Android
Вывод данных из базы данных SQLite Android
Google Maps API v2 добавление своих маркеров и фото к ним Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru