Как я могу запросить значение lat / long из базы данных и отобразить маркер в этом месте?это мой код, он отлично работает, когда я устанавливаю широту / долготу
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.branchmap);
mapView = (MapView) findViewById(R.id.mapView1);
mc = mapView.getController();
String[] coordinates = {"13.694317","100.601592"};
double lat = Double.parseDouble(coordinates[0]);
double lng = Double.parseDouble(coordinates[1]);
p = new GeoPoint(
(int) (lat * 1E6),
(int) (lng * 1E6));
mc.animateTo(p);
mc.setZoom(17);
mapOverlays = mapView.getOverlays();
drawable = this.getResources().getDrawable(R.drawable.mark1);
itemizedOverlay = new HelloItemizedOverlay(drawable);
OverlayItem overlayitem = new OverlayItem(p, "", "");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
, но когда я хочу запросить, он не работает, где я должен поместить эту часть кода
try {
ChannelDatabaseHelper dbHelper = new ChannelDatabaseHelper(this.getApplicationContext());
newDB = dbHelper.getWritableDatabase();
Cursor c1 = newDB.rawQuery("SELECT lat,long FROM " +
tableName , null);
if (c1 != null ) {
if (c1.moveToFirst()) {
do {
latitude =Integer.parseInt((c1.getString(c1.getColumnIndex("lat"))));
longitude = Integer.parseInt((c1.getString(c1.getColumnIndex("long"))));
p = new GeoPoint(
(int)(latitude *1E6 ),
(int)(longitude *1E6 ));
}while (c1.moveToNext());
}
}