Monday, May 14, 2012

How to refresh Google map.

Hi Guys this is my code.



I am able to refresh the google map on refresh button click but it is showing me the old coordinates and in some area it is show the rectangle image with cross image in it.. So guys please let me know where is the error or what modification i have to do in it.



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


}





No comments:

Post a Comment