开发者

Get Geopoints from SQlite DB

开发者 https://www.devze.com 2023-03-29 12:41 出处:网络
I created an SQlite database to store on it all latitudes and longitudes to display them in map. For the add of the values i didn\'t encouter any problem, i used this code:

I created an SQlite database to store on it all latitudes and longitudes to display them in map. For the add of the values i didn't encouter any problem, i used this code:

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

But i don't know how to insert them one by one in map, i usually/manually make this:

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

How to browse all the database and add all the Geopoints automatically? Thank you. EDIT: Is that true?

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.addPoin开发者_StackOverflowt(point);
            cur.moveToNext();
        }
        cur.close();


Quoting myself from my reply to you on the android-developers Google Group, since you elected to cross-post:

  1. Pass a Cursor to your ItemizedOverlay that contains your coordinates, retrieved from your database

  2. Implement size() in your ItemizedOverlay to return getCount() from the Cursor

  3. Implement getItem() in your ItemizedOverlay to moveToPosition() on the Cursor, read out the latitude and longitude, convert to microdegrees, create a GeoPoint, and return it

  4. Use the ItemizedOverlay on your MapView

0

精彩评论

暂无评论...
验证码 换一张
取 消