1

私はあなたが私に言ったようにしました
mapOverlays = mapView.getOverlays();
また、すべての変数を宣言する mainactivity クラスの開始時に、何を配置すればよいでしょうか? 私は持っている :

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;`

マーカーのすべてのカテゴリに同じジオポイント変数 (ポイント) を使用することに問題はありますか? オーバーレイ項目を各カテゴリに追加するために、次のことを行いました。

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); 動作しません..ありがとう!


それはまだ動作しません.. 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(); を試しました。あまりにもしかし、何も起こりません..

ありがとう!

4

1 に答える 1

0

populate()の項目を変更した後、着信がありませんItemizedOverlay

メソッドを次のように変更します。

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

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

--編集済み--

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);
}

よろしく

于 2012-12-12T19:55:59.200 に答える