友達、
私の場所が同じであるときに、MyLocationOverlayマーカーが画面に表示されないことに気づきました。
エミュレータの場所の値を変更すると画面に表示されるのでテストしました。次のページに移動してから同じページに戻りますが、表示されません。はい、場所の値を変更すると再び表示されます。場所が変更された場合、または誰かが私をどのように案内していない場合でも、常にそれを表示したいですか?
これが私のコードです
onCreate()
{
myLocOverlay = new MyLocationOverlay(this, mapView);
myLocOverlay.enableMyLocation();
mapView.getOverlays().add(myLocOverlay);
mapView.postInvalidate();
zoomToMyLocation();
}
@Override
protected void onPause() {
super.onPause();
if (myLocOverlay != null)
myLocOverlay.disableMyLocation();
}
@Override
public void onResume() {
if (myLocOverlay != null)
myLocOverlay.enableMyLocation();
super.onResume();
}
private void zoomToMyLocation() {
GeoPoint myLocationGeoPoint = myLocationOverlay.getMyLocation();
if(myLocationGeoPoint != null) {
mapView.getController().animateTo(myLocationGeoPoint);
mapView.getController().setZoom(10);
}
else {
Toast.makeText(this, "Cannot determine location", Toast.LENGTH_SHORT).show();
}
}