2012-04-11 27 views
6

Xin chào các bạn, đây là mã của tôi.Cách làm mới bản đồ Google.

Tôi có thể làm mới bản đồ google trên nút làm mới nhấp nhưng nó hiển thị cho tôi tọa độ cũ và trong một số khu vực nó hiển thị hình chữ nhật với hình ảnh chéo trong đó .. Vì vậy, hãy cho tôi biết đâu là hoặc sửa đổi những gì tôi phải làm trong đó.

public class GmapActivity extends MapActivity {Mapview map;Button btnrefresh;Button btnbacktolist; int chargenumber=0;

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gmapactivity); 

    final Bundle bundle = this.getIntent().getExtras(); 
    chargenumber = bundle.getInt("ChargeNumber"); 
    int latitude = bundle.getInt("latitude"); 
    int longitude = bundle.getInt("longitute"); 
    CreateMap(latitude, longitude); 

    btnrefresh = (Button) findViewById(R.id.btnReload); 
    btnrefresh.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      RefreshMap(); 
     } 
    }); 

    btnbacktolist = (Button) findViewById(R.id.btnBack); 
    btnbacktolist.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      BacktoScheduleList(bundle); 
     } 
    }); 



} 

protected void BacktoScheduleList(Bundle bundle) { 

    ProgressDialog progressDialog = ProgressDialog.show(this, "", 
      "Please wait...", true); 
    bundle = this.getIntent().getExtras(); 
    Bundle Newbundle = new Bundle(); 
    Newbundle.putString("userid", bundle.getString("userid").trim()); 
    Newbundle.putString("username", bundle.getString("username").trim()); 
    Intent intent = new Intent(this, Ok.class); 
    intent.putExtras(bundle); 
    startActivityForResult(intent, 0); 
    progressDialog.dismiss(); 
    finish(); 

} 

private void CreateMap(int latitude, int longitude) { 



    map = (MapView) findViewById(R.id.mvView); 
    map.setBuiltInZoomControls(true); 
    map.setStreetView(true); 
    List<Overlay> mapOverlays = map.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(
      R.drawable.school_bus); 
    MOverlayItems itemizedOverlay = new MOverlayItems(drawable, this); 
    GeoPoint point = null; 
    point = new GeoPoint(latitude, longitude); 
    OverlayItem overlayitem = new OverlayItem(point, null, null); 
    itemizedOverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedOverlay); 
    MapController mapController = map.getController(); 
    mapController.animateTo(point); 
    mapController.setZoom(12); 

} 

protected void RefreshMap() { 
    map.getOverlays().clear(); 
    map.clearAnimation(); 
    WebServiceCaller webservicecaller = new WebServiceCaller(); 
    String result = webservicecaller.GetLatLong(chargenumber); 

    if (result.toString().equalsIgnoreCase("false")) { 

    } else { 
     StringTokenizer tokens = new StringTokenizer(result, ","); 
     int latitude = Integer.parseInt(tokens.nextToken()); 
     int longitude = Integer.parseInt(tokens.nextToken()); 
     ProgressDialog progressDialog = ProgressDialog.show(this, "", 
       "Refreshing. Please wait...", true); 
     CreateMap(latitude, longitude); 
     progressDialog.dismiss(); 
    } 
} 

protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
} 

}

Trả lời

4

tôi sử dụng nó theo cách sau đây và nó hoạt động đúng cho tôi. Có lẽ bạn nedd cũng là một cuộc gọi map.invalidate().

protected void RefreshMap() { 
    map.getOverlays().clear(); 
    map.invalidate(); 

    ... create itemizedOverlay 

    map.getOverlays().add(itemizedOverlay); 
    map.invalidate(); 
    map.getController().animateTo(point); 
} 
+5

map.invalidate() không tồn tại trong API Maps V2. – AndroidDev

+0

@Blehi Bạn có thể xây dựng thêm ... Tôi muốn làm mới bản đồ của mình .. tôi nên viết gì trong "... tạo itemizedOverlay" –

+0

@Blehi Bạn có thể cung cấp mã thích hợp không .. ?? :( –

Các vấn đề liên quan