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

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

Войти
Регистрация
Восстановить пароль
 
SkyL1ne_tm
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
#1

Координаты и Polyline - Android

06.05.2015, 13:59. Просмотров 323. Ответов 0
Метки нет (Все метки)

Записываю координаты местоположения в базу данных SQLite.
Далее пытаюсь эти координаты из базы взять и поместить в Map. Затем отрисовать их на карте через Polyline.
Но на карте ничего не рисуется. В чем может быть проблема? Или я вообще не то делаю?

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
public class MainActivity extends FragmentActivity {
    GoogleMap map;
    SupportMapFragment mapFragment;
    Marker marker;
    double latitude;
    double longitude;
    LatLng myPosition;
    private LocationManager locationManager;
    Map<Double, Double> coordMap = new HashMap<>();
    Curcor c = null;
 
//всякие методы типа Oncreate и т.д.
 
private void showTrack() {
        SQL sqlHelper = new SQL(this);
        SQLiteDatabase db = sqlHelper.getReadableDatabase();
        double lat, lng;
        PolylineOptions polylineOptions = new PolylineOptions();
        c = db.rawQuery("SELECT * FROM coordinates", null);
        while (c.moveToNext()) {
            lat = Double.parseDouble(c.getString(c.getColumnIndex("Latitude")));
            lng = Double.parseDouble(c.getString(c.getColumnIndex("Longitude")));
            coordMap.put(lat, lng);
                polylineOptions
                        .add(new LatLng(lat, lng))
                        .color(android.R.color.holo_red_dark).width(2)
                        .geodesic(true);
                map.addPolyline(polylineOptions);
        }
        c.close();
        sqlHelper.close();
    }
 
}
Класс SQL:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class SQL extends SQLiteOpenHelper {
 
    final String LOG_TAG = "myLogs";
public SQL(Context context) {
        //  суперкласса
        super(context, "Locations", null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.d(LOG_TAG, "--- onCreate database ---");
        // создаем таблицу с полями
        db.execSQL("create table coordinates ("
                + "Latitude,"
                + "Longitude,"
                + "Time)");
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
Добавлено через 1 час 51 минуту
Сделал то же самое, только через ArrayList-ы, для широты и для долготы свой лист.
Координаты в них есть, но по прежнему не рисуются на карте.

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
private void showTrack() {
        SQL sqlHelper = new SQL(this);
        SQLiteDatabase db = sqlHelper.getReadableDatabase();
        double lat, lng;
        ArrayList<Double> latList = new ArrayList<Double>();
        ArrayList<Double> lngList = new ArrayList<Double>();
        PolylineOptions polylineOptions = new PolylineOptions();
        c = db.rawQuery("SELECT * FROM coordinates", null);
        while (c.moveToNext()) {
            lat = Double.parseDouble(c.getString(c.getColumnIndex("Latitude")));
            lng = Double.parseDouble(c.getString(c.getColumnIndex("Longitude")));
            latList.add(lat);
            lngList.add(lng);
        }
 
        Iterator<Double> latIterator = latList.iterator();
        Iterator<Double> lngIterator = lngList.iterator();
 
        while (latIterator.hasNext() || lngIterator.hasNext()) {
            lat = latIterator.next();
            lng = lngIterator.next();
            polylineOptions
                    .add(new LatLng(lat, lng))
                    .color(android.R.color.holo_red_light).width(2)
                    .geodesic(true);
            System.out.println(lat + " : " + lng);
        }
        c.close();
        sqlHelper.close();
    }
Я так понимаю, проблема где-то тут:
Java
1
2
3
4
5
6
7
8
while (latIterator.hasNext() || lngIterator.hasNext()) {
            lat = latIterator.next();
            lng = lngIterator.next();
            polylineOptions
                    .add(new LatLng(lat, lng))
                    .color(android.R.color.holo_red_light).width(2)
                    .geodesic(true);
        }
или нет?

Добавлено через 21 час 58 минут
Вопрос решился, забыл дописать строку для отображения на карте.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2015, 13:59     Координаты и Polyline
Посмотрите здесь:

Android Координаты GPS внутри service
Координаты imageView Android
Android Полные GPS координаты в мобильном
Android Подделать GPS координаты
Запомнить координаты прокрутки списка Android
Android OpenGL не работают текстурные координаты
Android Точные координаты анимации
Координаты gps (структура) Android
Android GPS координаты
Координаты ImageView Android
Polyline как у гугловского приложения "Карты" Android
Получить координаты GPS Android

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

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

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