我有下面的代碼,它從數據庫中獲取信息並將其繪製在地圖上。信息在那裏,可點擊,但實際圖標androidmarker
不可見。爲什麼?我該如何解決?標記圖標沒有顯示,但可點擊
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tweets = new LocationData(this);
mapView = (MapView) findViewById(R.id.mapView);
mapView.setSatellite(true);
mc = mapView.getController();
mc.setZoom(17);
mapView.setBuiltInZoomControls(true);
// Add the MyPositionOverlay
positionOverlay = new MyPositionOverlay();
List<Overlay> overlays = mapView.getOverlays();
overlays.add(positionOverlay);
//Add the Mapitems Overlay.
mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
itemizedoverlay = new Mapitems(drawable, this);
mylocation();
distance(lat,lng);
addmark();
mapView.invalidate();
}
public void addmark(){
SQLiteDatabase db = tweets.getWritableDatabase();
String count = "SELECT * FROM tweets;";
Cursor mcursor = db.rawQuery(count, null);
startManagingCursor(mcursor);
mcursor.moveToFirst();
if(mcursor != null && mcursor.moveToFirst())
{
do
{
System.out.println("WHAT");
String tname = mcursor.getString(4);
String tmessage = mcursor.getString(7);
Double tlat = mcursor.getDouble(1);
System.out.println("lat" + tlat);
Double tlng = mcursor.getDouble(2);
System.out.println("lng" + tlng);
GeoPoint point = new GeoPoint(
(int) (tlat*1E6),
(int) (tlng*1E6));
OverlayItem overlayitem = new OverlayItem(point, tname, tmessage);
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}while(mcursor.moveToNext());
}
}
是屏幕上的tlat和tlng像素還是geopoints?看起來他們不是地點,您需要使用地圖投影來映射(x,y)和(lat,lng) – Itsik 2010-08-25 15:20:26
他們繪製正確。當我點擊屏幕上顯示彈出框的那一點時。它只是沒有圖標來顯示它。 – Skizit 2010-08-25 15:36:36