6
こんにちは、これは私のコードです。Googleマップを更新する方法。
私は、更新ボタンをクリックしてGoogleマップをリフレッシュすることができますが、それは私に古い座標を表示しています、そして、いくつかの領域では、それに十字形の画像が表示されます。エラー、またはそれを修正する必要があります。
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;
}
}
map.invalidate()はMaps API V2には存在しません。 – AndroidDev
@Blehiもっと詳しく教えてください。私はマップをリフレッシュしたいのですが... "itemizedOverlayを作成してください" –
@Blehi適切なコードを入力してください。 :( –