Android谷歌地图的纬度和经度错误
目前,我正在谷歌地图上工作,但我有一个问题。当我 拉丁美洲时间:22.422006 液化天然气:23.084095 emulator像这样向我敬酒: 纬度:2.2422006E13 液化天然气:2.3084095E7 我读了很多教程,也做了完全一样的,但我不能处理这个问题 这是我的密码:Android谷歌地图的纬度和经度错误,android,google-maps,emulation,latitude-longitude,Android,Google Maps,Emulation,Latitude Longitude,目前,我正在谷歌地图上工作,但我有一个问题。当我 拉丁美洲时间:22.422006 液化天然气:23.084095 emulator像这样向我敬酒: 纬度:2.2422006E13 液化天然气:2.3084095E7 我读了很多教程,也做了完全一样的,但我不能处理这个问题 这是我的密码: public class MainActivity extends MapActivity { public static final String TAG = "GoogleMapsActivity"
public class MainActivity extends MapActivity {
public static final String TAG = "GoogleMapsActivity";
private MapView mapView;
private LocationManager locationManager;
Geocoder geocoder;
Location location;
LocationListener locationListener;
CountDownTimer locationtimer;
MapController mapController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView)findViewById(R.id.mapView);
mapController = mapView.getController();
mapController.setZoom(16);
mapView.setBuiltInZoomControls(true);
readFromGPS();
}
private void readFromGPS() {
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
// Define a listener that responds to location updates
locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
Toast.makeText(getApplicationContext(), location.getLatitude()*1E6+"-"+location.getLongitude(), Toast.LENGTH_SHORT).show();
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "GPS Enabled", Toast.LENGTH_SHORT).show();
}
public void onProviderDisabled(String provider) {
}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 0, locationListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
看起来代码给出的正是预期的结果。虽然您可能会对toast消息中的lat乘以1e6这一事实感到困惑,但对lon却没有这样做?我想您只是看到location.getLatitude()被转换为字符串的结果。尝试创建双精度来保存lat/long,并将get的结果分配给这些变量。@ScottW:I乘以1E6,以查看错误是否来自它。但它没有改变。所以,你可以考虑在纬度和经度上使用或不使用它。@BillMote:我也试过了。创建了两个double,比如double lat=location.getLatitude();但是结果没有改变。你能更具体地说明你的预期结果是什么吗?我想我不明白你认为这是错的。