Как я могу запросить значение lat / long из базы данных sqlite и показать на карте Google - PullRequest
1 голос
/ 27 апреля 2011

Как я могу запросить значение 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());
            } 
        } 

1 Ответ

0 голосов
/ 28 апреля 2011
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.parseDouble((c1.getString(c1.getColumnIndex("lat"))));
                    longitude = Integer.parseDouble((c1.getString(c1.getColumnIndex("long"))));
                    p = new GeoPoint(
                            (int)(latitude *1E6 ), 
                            (int)(longitude *1E6 ));
                    //Write a code to display this point on google-map
                }while (c1.moveToNext());
            } 
        } 

Попробуйте этот код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...