当位置更改时(或当我通过 telnet 提供模拟位置时),我正在尝试为地图上的新位置设置动画
这就是我用的
Toast.makeText(getApplicationContext(), "New Lontitue = "+ lontitue +"\n New Latitute = "+ latitute, Toast.LENGTH_LONG).show();
GeoPoint geopoint = new GeoPoint(latitute, lontitue);
mapController.animateTo(geopoint);
尽管 Toast 正确显示了 lontitute 和 latitute,但应用程序不会根据给定的坐标设置动画。可能是什么问题呢??请在下面找到我的整个代码。
package com.mayuonline.androidgps;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class GPSActivity extends MapActivity {
MapController mapController;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// setting up map
MapView mapview = (MapView)findViewById(R.id.mapview);
mapview.setBuiltInZoomControls(true);
mapController = mapview.getController();
// mapController.setZoom(16);
LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
makeUseOfNewLocation(location);
//Toast.makeText(getApplicationContext(), "New Locationdd", Toast.LENGTH_LONG).show();
}
private void makeUseOfNewLocation(Location location) {
double lon = (double)location.getLongitude();
double lat = (double)location.getLatitude();
int lontitue = (int)lon;
int latitute = (int)lat;
Toast.makeText(getApplicationContext(), "New Lontitue = "+ lontitue +"\n New Latitute = "+ latitute, Toast.LENGTH_LONG).show();
GeoPoint geopoint = new GeoPoint(latitute, lontitue);
mapController.animateTo(geopoint);
}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,locationListener);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}