我希望能够仅使用GPS获取当前坐标。使用GPS获取当前位置
目前我的代码获取坐标一次,然后一旦它们被存储后再次使用它们。我正在寻找关于如何修改代码的解决方案,以便单击按钮时获取当前坐标。
下面的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Setting TextViews for the coordinates
startLatitudeField = (TextView) findViewById(R.id.TextView02);
startLongitudeField = (TextView) findViewById(R.id.TextView04);
endLatitudeField = (TextView) findViewById(R.id.textView06);
endLongitudeField = (TextView) findViewById(R.id.textView08);
//Button
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
//find out how to get the current location using gps
//not what is stored
if (startLat != 0) {
onLocationChanged(location);
} else {
onLocationChanged(location);
Button button = (Button) findViewById(R.id.button1);
button.setText("Get me home");
}
}
});
};
@Override
public void onLocationChanged(Location location) {
if (startLat == 0) {
startLat = (double) (location.getLatitude());
startLng = (double) (location.getLongitude());
startLatitudeField.setText(String.valueOf(startLat));
startLongitudeField.setText(String.valueOf(startLng));
}
else {
endLat = (double) (location.getLatitude());
endLng = (double) (location.getLongitude());
endLatitudeField.setText(String.valueOf(endLat));
endLongitudeField.setText(String.valueOf(endLng));
}
}
如果您需要获得点击按钮的坐标,那么为什么还需要'onLocationChanged'? – mangusta
不确定。我正在跟随一个指导,并将其与我拥有的一点知识结合在一起。如果我知道答案,我会说... – Bob21