Получить географические точки из SQlite DB - PullRequest
0 голосов
/ 19 августа 2011

Я создал базу данных SQlite, чтобы хранить на ней все широты и долготы для отображения их на карте.Для добавления значений я не столкнулся с какой-либо проблемой, я использовал этот код:

CoordBD CoordBd = new CoordBD(this);
Coordo coordo = new Coordo(36.869686,10.315642 );
CoordBd.open();
CoordBd.insertCoordo(coordo);

Но я не знаю, как вставить их по одному в карту, я обычно / вручную делаю это:

GeoPoint point2 = new GeoPoint(microdegrees(36.86774),microdegrees(10.305302));
pinOverlay.addPoint(point2);

Как просмотреть всю базу данных и автоматически добавить все географические точки?Спасибо. РЕДАКТИРОВАТЬ : Это правда?

CoordBD CoordBd = new CoordBD(this);
        CoordBd.open();
        Coordo coordo = new Coordo(36.869686,10.315642 );
        CoordBd.insertCoordo(coordo);
        CoordBd.close();

        maMap = (MapView)findViewById(R.id.myGmap);
        maMap.setBuiltInZoomControls(true);
        ItemizedOverlayPerso pinOverlay = new ItemizedOverlayPerso(getResources().getDrawable(R.drawable.marker));

        String[] result_columns = new String[] {COL_LATI, COL_LONGI};
        Cursor cur = db.query(true, TABLE_COORD, result_columns,
        null, null, null, null, null, null);
        cur.moveToFirst();
        while (cur.isAfterLast() == false) {
                int latitude = cur.getColumnIndex("latitude");
                int longitude = cur.getColumnIndex("longitude");
                GeoPoint point = new GeoPoint(microdegrees(latitude),microdegrees(longitude));
                pinOverlay.addPoint(point);
            cur.moveToNext();
        }
        cur.close();

1 Ответ

1 голос
/ 19 августа 2011

Цитирую себя из моего ответа вам в android-developers Группе Google, поскольку вы выбрали перекрестную публикацию :

  1. Передайте Cursor вваш ItemizedOverlay, содержащий ваши координаты, полученный из вашей базы данных

  2. Реализация size() в вашем ItemizedOverlay для возврата getCount() из Cursor

  3. Реализуйте getItem() в ваших ItemizedOverlay до moveToPosition() на Cursor, считайте широту и долготу, конвертируйте в микродешти, создайте GeoPoint и верните его

  4. Используйте ItemizedOverlay на вашем MapView

...