2011-01-31 73 views
0

我需要添加另一個覆蓋項目到一個mapview。我已經使用標準的Android開發人員指南谷歌地圖。我目前在一個標籤中有mapview。我真的很感激任何想法。謝謝。如何添加另一個覆蓋項目到android mapview

下面是我的java類:

public class Mapview extends MapActivity { 

    protected boolean isRouteDisplayed(){ 
     return false; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.mapview); 

     MapView mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 

     // JD sports marker begin 
     List<Overlay> mapOverlays = mapView.getOverlays(); 
     Drawable drawable = this.getResources() 
       .getDrawable(R.drawable.jd_sports_logo); 
     //Passes drawable(jd sports logo) into HelloItemizedOverlay class 
     HelloItemizedOverlay itemizedoverlay = 
       new HelloItemizedOverlay(drawable); 

     double latitude = 51.545538; 
     double longitude = -0.477247; 
     GeoPoint point = new GeoPoint((int)(latitude * 1e6), 
       (int)(longitude * 1e6)); 

     OverlayItem overlayitem = new OverlayItem(point, "JD Sports", 
       "This is a sports shop"); 

     itemizedoverlay.addOverlay(overlayitem); 
     mapOverlays.add(itemizedoverlay); 
     // JD sports marker ends 

     // Fitness first marker begin 
     List<Overlay> mapOverlays1 = mapView.getOverlays(); 
     Drawable drawable1 = this.getResources() 
       .getDrawable(R.drawable.fitness_first_logo); 
     HelloItemizedOverlay itemizedoverlay1 = 
       new HelloItemizedOverlay(drawable); 

     double latitude1 = 51.545157; 
     double longitude1 = -0.477247; 
     GeoPoint point1 = new GeoPoint((int)(latitude * 1e6), 
       (int)(longitude * 1e6)); 

     OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports", 
       "This is a sports shop"); 

     itemizedoverlay.addOverlay(overlayitem); 
     mapOverlays.add(itemizedoverlay); 
     // Fitness first marker ends 
    } 

} 

我HelloItemizedOverlay類:

public class HelloItemizedOverlay extends ItemizedOverlay { 

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
    private ArrayList<OverlayItem> mOverlays1 = new ArrayList<OverlayItem>(); 

    public HelloItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 

    } 

    public void addOverlay(OverlayItem overlay) { 

     mOverlays.add(overlay); 
     populate(); 
    } 

    public HelloItemizedOverlay(Drawable defaultMarker, Context context) { 
     super(defaultMarker); 
     Context mContext = context; 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     // TODO Auto-generated method stub 
     return mOverlays.get(i); 
    } 

    @Override 
    public int size() { 
     // TODO Auto-generated method stub 
     return mOverlays.size(); 
    } 

    @Override 
    protected boolean onTap(int index) { 
     OverlayItem item = mOverlays.get(index); 
     Context mContext = null; 
     AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
     dialog.setTitle(item.getTitle()); 
     dialog.setMessage(item.getSnippet()); 
     dialog.show(); 
     return true; 
    } 

} 
+1

什麼就添加就像你的第一個itemizedoverlay.addOverlay(overlayitem)做了另一個層的問題,這將是更好,如果你可以格式化所有的代碼,代碼... – Necronet 2011-01-31 20:34:09

回答

1
OverlayItem overlayitem1 = new OverlayItem(point, "JD Sports, ... 

應改爲

OverlayItem overlayitem1 = new OverlayItem(point1, "JD Sports", ... 

不應該嗎?

0

試試這個:

... 
Drawable drawable1 = this.getResources() 
      .getDrawable(R.drawable.fitness_first_logo); 
boundCenterBottom(drawable1); 
... 
相關問題