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

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

Войти
Регистрация
Восстановить пароль
 
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 89
22.01.2016, 18:42     Вывод множества маркеров на карту, SQLite + Gmap #1
Помогите с организацией вывода кастомных (фото из галереи) на гугл карту по координатам.
Есть класс:
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
Посмотрите здесь:

Маркер на google карту Android
Вывод данных из базы данных SQLite Android
Вывод на экран таблиц БД (SQLite) Android
Android Вывод данных по ключевым словам. Android SQLite
Android SQLite
SQLite вывод данных Android
Не отображает карту Android
Android Добавление маркеров на карту Google Maps API v2
Android SQLite and ListView. Ввод и вывод данных
Android Добавление маркеров на карту Google Maps API v2
Google Maps API v2 добавление своих маркеров и фото к ним Android
Android Перенос приложения на SD карту

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

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

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