2010-08-25 106 views
0

我有下面的代碼,它從數據庫中獲取信息並將其繪製在地圖上。信息在那裏,可點擊,但實際圖標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()); 

    } 
} 
+0

是屏幕上的tlat和tlng像素還是geopoints?看起來他們不是地點,您需要使用地圖投影來映射(x,y)和(lat,lng) – Itsik 2010-08-25 15:20:26

+0

他們繪製正確。當我點擊屏幕上顯示彈出框的那一點時。它只是沒有圖標來顯示它。 – Skizit 2010-08-25 15:36:36

回答

0

我假設Mapitems是實現ItemizedOverlay的類。 問題可能在那裏。您可以按照說明here關於如何正確創建該類。我自己跟着這個教程,它對我很好。重要的部分是確保您在添加覆蓋圖addOverlay(OverlayItem overlay)

之後確保您撥打populate()另外,爲什麼您有mapOverlaysoverlays?他們不一樣嗎?

+0

我正在學習這個教程。我也有工作,但現在我在一個循環內完成它不顯示圖標。我有兩個,因爲這是我碰巧編寫2個不同的覆蓋。 – Skizit 2010-08-25 16:17:40

+0

彈出框是覆蓋層的事件,還是您在其他位置添加了不同的標記?因爲如果你說它曾經工作,唯一合乎邏輯的事情就是位置不正確 – Itsik 2010-08-25 20:14:10