데이터베이스에 있는 위도 경도 값을 읽어오는 것은 되는데요ㅠㅠㅠㅠㅠ그 위치에 표시하는 게 안되요ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ제발 도와주세요요요요요요요요용
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
public class Map extends MapActivity {
MapView mapview;
Cursor mCursor;
SQLiteDatabase DBgb;
dbGB DBgbHelper;
int count = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maps);
mapview = (MapView) findViewById(R.id.map);
mapview.setBuiltInZoomControls(true);
mapview.setSatellite(false);
GeoPoint gpoint = new GeoPoint((int) (37.588391 * 1000000.0),
(int) (126.976547 * 1000000.0));
MapController controller = mapview.getController();
controller.animateTo(gpoint);
controller.setZoom(16);
controller.setCenter(gpoint);
mapview.getOverlays().add(new MapOverlay());
DBHelper = new db(this);
DB= DBHelper.getWritableDatabase();
mCursor = DB.rawQuery("select * from Gyoung", null);
}
@Override
protected boolean isRouteDisplayed() {
return true;
}
class MapOverlay extends Overlay {
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
// TODO Auto-generated method stub
super.draw(canvas, mapView, shadow);
Paint paint1 = new Paint();
Paint paint2 = new Paint();
paint1.setARGB(255, 255, 0, 0); // a, r, g, b
paint2.setARGB(255, 255, 0, 0);
GeoPoint geoPoint = new GeoPoint(37588391, 126976547);
Point pixPoint = new Point();
mapView.getProjection().toPixels(geoPoint, pixPoint);
// drawCircle(float cx, float cy, float radius, Paint paint) ;
// drawLine(float startX, float startY, float stopX, float stopY,
// Paint
// paint) ;
// drawText(String text, float x, float y, Paint paint) ;
Point[] position =new Point[mCursor.getCount()];
while (mCursor.moveToNext()) {
double latitude = Double.parseDouble(mCursor.getString(2));
double longitude = Double.parseDouble(mCursor.getString(3));
/*Toast.makeText(MapGB.this, "" + latitude + "" + longitude , Toast.LENGTH_LONG)
.show();*/
position[count] = mapView.getProjection().toPixels(new GeoPoint(
(int) (latitude * 1E6), (int) (longitude * 1E6)), null);
canvas.drawCircle(position[count].x,position[count].y,10,paint1);
count++;
}
}
}
}
아이고;; 댓글을 이제야 봣네요;;; ㄷㄷ;;
mapview.getOverlays().add(new MapOverlay()); <== 이놈을
DBHelper = new db(this);
DB= DBHelper.getWritableDatabase();
mCursor = DB.rawQuery("select * from Gyoung", null);
<==================== 여기로 이동=====================>
하신거에다가;
MapOverlay 클래스에
public int getSize(){
return mCursor.getCount();
}
을 추가 해보시면 어떨까요?;;;




onCreate() 에서 맨 마지막에
mapview.postInvalidate(); 를 추가해 주시거나,
mapview.getOverlays().add(new MapOverlay()); <== 이놈을
DBHelper = new db(this);
DB= DBHelper.getWritableDatabase();
mCursor = DB.rawQuery("select * from Gyoung", null);
<==================== 여기로 이동=====================>
하시면 될것같.... 습니다.