Android getLastKnownLocation可以';无法通过location.setLatitude/setLatitude获取新数据?
我的完整代码Android getLastKnownLocation可以';无法通过location.setLatitude/setLatitude获取新数据?,android,geolocation,location,Android,Geolocation,Location,我的完整代码 在110~131行中,我想更改位置,它确实有效,地图视图将更改 private class MapClickedListener implements OnClickListener { @Override public void onClick (View v) { String lng = "121.558561"; lng = edt_lng.getText().toString().trim(); Stri
在110~131行中,我想更改位置,它确实有效,地图视图将更改
private class MapClickedListener implements OnClickListener {
@Override
public void onClick (View v) {
String lng = "121.558561";
lng = edt_lng.getText().toString().trim();
String lat = "25.031005";
lat = edt_lat.getText().toString().trim();
if(lng.equals("")||lat.equals("")){
Toast.makeText(getApplicationContext(), "input again!", Toast.LENGTH_LONG).show();
location = locManager.getLastKnownLocation(bestProvider);
updateToNewLocation(location);
}else{
Location location = new Location(LocationManager.NETWORK_PROVIDER);
location.setLongitude(Double.parseDouble(lng));
location.setLatitude(Double.parseDouble(lat));
updateToNewLocation(location);
}
}
}
在第133~148行,我想知道位置和我设置的点之间的距离private Button.OnClickListener EQ = new Button.OnClickListener(){
@Override
public void onClick (View v) {
eqlocation.setLongitude(120.82);
eqlocation.setLatitude(23.85);
location = locManager.getLastKnownLocation(bestProvider);
float[] result = new float[5];
Location.distanceBetween(location.getLatitude(), location.getLongitude(), eqlocation.getLatitude(), eqlocation.getLongitude(), result);
BigDecimal bd = new BigDecimal(result[0]);
BigDecimal rounded = bd.setScale(2, RoundingMode.HALF_UP);
double dis = rounded.doubleValue();
String dist = String.valueOf(dis/1000);
Toast.makeText(getApplicationContext(), "distance: " + dist + "km", Toast.LENGTH_LONG).show();
}
};
但是当我通过第110~131行的代码更改位置时,结果是错误的。我应该怎么做才能得到正确的结果?您是否尝试过distanceTo()并检查是否获得了更好的结果?我通常使用distanceTo()获得良好的结果