问题
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.addPoint(point);
cur.moveToNext();
}
cur.close();
回答1:
Quoting myself from my reply to you on the android-developers Google Group, since you elected to cross-post:
Pass a
Cursorto yourItemizedOverlaythat contains your coordinates, retrieved from your databaseImplement
size()in yourItemizedOverlayto returngetCount()from theCursorImplement
getItem()in yourItemizedOverlaytomoveToPosition()on theCursor, read out the latitude and longitude, convert to microdegrees, create aGeoPoint, and return itUse the
ItemizedOverlayon yourMapView
来源:https://stackoverflow.com/questions/7121924/get-geopoints-from-sqlite-db