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

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

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

Координаты и Polyline - Программирование Android

06.05.2015, 13:59. Просмотров 353. Ответов 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
Посмотрите здесь:

Polyline как у гугловского приложения "Карты" - Программирование Android
Как реализовать такое?

Точные координаты анимации - Программирование Android
Добрый день ! Я задал анимацию не в XML файле а програмно: imageView = (ImageView) findViewById(R.id.kursor); ...

Подделать GPS координаты - Программирование Android
Только начал собирать инструкции по работе с GPS и возник вопрос по &quot;отладке&quot; программы. Теоретически программа должна отслеживать трек и...

Получить координаты GPS - Программирование Android
Привет. На андройде не проходит строчку locationManager = (LocationManager)activity.getSystemService(LOCATION_SERVICE); Вызывается...

Координаты gps (структура) - Программирование Android
создал в разделе про телефоны, может если есть лучший- не знаю. не нашел. вопрос такой: gps координаты видны в виде -широта долгота...

Диалог указания координаты на карте - Программирование Android
Гуру, кто-нибудь подобный компонент встречал? Не хочу с нуля &quot;велосипед&quot; изобретать... Думаю такое много раз писали и даже где-нибудь...

Координаты GPS внутри service - Программирование Android
Есть сервис RepeatingAlarmService Код public class RepeatingAlarmService extends BroadcastReceiver { @Override public...

Запомнить координаты прокрутки списка - Программирование Android
В Activity1 список ListView обновляется в onResume(). При выборе элемента списка открывается Activity2, в котором отображается выбранный...

Как задать координаты анимации - Программирование Android
Добрый день ! Сначала задавал анимацию с помощью TranslateAnimation animationLeft = new TranslateAnimation(300, -300, 0, 0); Я...

Не получается получить координаты с GPS - Программирование Android
Почему у меня &quot;вылетает&quot; приложение, когда я пытаюсь получить координаты с GPS. Если что в коде я пометил комментарием где ошибка вылетает,...


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

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

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