2012-12-12 18 views
1

我照你告訴我的那樣做了。我會在內部詢問oncreate()應該放一些東西,除了從
mapOverlays = mapView.getOverlays(); ??
另外,在我的主要活動類的開始處,我聲明所有變量,我應該如何放置?我有:從Android中刪除一個具體的ItemizedOverlay GoogleMaps

List<Overlay> mapOverlays; 
HelloItemizedOverlay itemizedoverlay0; 
HelloItemizedOverlay itemizedoverlay1; 
HelloItemizedOverlay itemizedoverlay2; 
HelloItemizedOverlay itemizedoverlay3; 
HelloItemizedOverlay itemizedoverlay4; 
HelloItemizedOverlay itemizedoverlay5; 

GeoPoint point; 

Drawable drawable0; 
Drawable drawable1; 
Drawable drawable2; 
Drawable drawable3; 
Drawable drawable4; 
Drawable drawable5; 

OverlayItem overlayItem5; 
OverlayItem overlayItem0; 
OverlayItem overlayItem1; 
OverlayItem overlayItem2; 
OverlayItem overlayItem3; 
OverlayItem overlayItem4;` 

有沒有使用相同的GeoPoint變量(點)標記的所有類別的問題嗎? 爲了覆蓋項目添加到每個類別我所做的:

try { 
    Drawable drawable0 = this.getResources().getDrawable(R.drawable.marker_default); 
    HelloItemizedOverlay itemizedoverlay0 = new HelloItemizedOverlay(drawable0, this); 
     JSONArray jArray = new JSONArray(result);  
     for(int i=0; i<jArray.length();i++){ 
      JSONObject json = jArray.getJSONObject(i);   
      double d1 =json.getDouble("longtitude"); 
      double d2 =json.getDouble("latitude");   

      GeoPoint point = new GeoPoint((int) (d2 * 1E6), 
             (int) (d1 * 1E6));    
      OverlayItem overlayItem0= new OverlayItem((GeoPoint) point, "Center", "Center"); 
      itemizedoverlay0.addOverlay(overlayItem0);   
     }//for 
     mapOverlays.add(itemizedoverlay0);  
     mapView.getController().animateTo(point); 
     mc.setZoom(7);  
}//try 

另外,mapOverlays.remove(itemizedoverlay0);不work..Thanks!


它仍然不工作..在RM0()函數,我認爲這是問題。我寫:

public void rm0() 
    {     
      for(int i=0; i< mapOverlays.size();i++) 
      { 
       Toast.makeText(getBaseContext(), "in the rm0"+i,Toast.LENGTH_SHORT).show(); 
       mapOverlays.remove(overlayItem0); 
      } 

    } 

我該如何刪除itemizedOverlay0?我試過itemizedoverlay0.clearOverlay();但沒有任何反應..

謝謝!

回答

0

您在更改ItemizedOverlay中的項目後錯過了致電populate()

更改方法爲每波紋管:

public void removeOverlay(int item) { 
     mOverlays.remove(item); 
     populate(); 
} 

public void clear() { 
     mOverlays.clear(); 
     populate(); 
} 

--EDITED--

HelloItemizedOverlay itemizedoverlay0 = new HelloItemizedOverlay(drawable0, this); 
try { 
    JSONArray jArray = new JSONArray(result); 
    for(int i=0; i<jArray.length();i++){ 
     JSONObject json = jArray.getJSONObject(i); 
     double d1 =json.getDouble("longtitude"); 
     double d2 =json.getDouble("latitude"); 
     Drawable drawable0 = this.getResources().getDrawable(R.drawable.marker_default); 
     GeoPoint point = new GeoPoint((int) (d2 * 1E6), (int) (d1 * 1E6)); 
     OverlayItem overlayItem0= new OverlayItem((GeoPoint) point, "Center", "Center"); 
     itemizedoverlay0.addOverlay(overlayItem0); 
    } 
    mapOverlays.add(itemizedoverlay0); 
    mapView.getController().animateTo(point); 
    mc.setZoom(7); 
} 

問候

+0

我這樣做,但似乎沒有任何happen.In的RM0()函數是什麼我應該把? –

+0

您還需要移動添加循環的'itemezedoverlay0'的代碼,就像在我編輯的答案中那樣。 – Luis

+0

當我把mapOverlays.add(itemizedoverlay0);外面因爲它根本不起作用。 –

相關問題