你好,请看下面的代码。
public void onClick(View arg0) {
// create class object
gps = new GPSTracker(MainActivity.this);
// check if GPS enabled
if(gps.canGetLocation()){
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
// \n is for new line
Toast.makeText(getApplicationContext(), "Time : " +mydate + " Your Location is - \nLat: "
+ latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
}
在GPSTracker班级:
public double getLatitude(){
if(location != null){
latitude = location.getLatitude();
}
// return latitude
return latitude;
}
/**
* Function to get longitude
* */
public double getLongitude(){
if(location != null){
longitude = location.getLongitude();
}
// return longitude
return longitude;
}
我想将纬度和经度保存到数组中。
与单击btnShowLocation按钮时一样,纬度将设置为n1x,其经度为n1y。
然后,第二次单击该按钮,纬度将设置为n2x,经度为n2y。
答案 0 :(得分:2)
您可以创建一个名为LatLong的内部类或使用simplelatlng
public class LatLong {
double lat;
double long;
public LatLong(double lat, double long) {
this.lat = lat;
this.long = long;
}
public double getLat(){
return this.lat;
}
public double getLong(){
return this.long;
}
}
然后您可以将其添加到MainActivity
final List<LatLong> latLongList = new ArrayList<LatLong>();
public void onClick(View arg0) {
//...
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
latLongList.add(new LatLong(latitude, longitude));
//...
}
答案 1 :(得分:1)
如果您想一次保存一个坐标单位(一个单位是纬度和经度的组合),请创建一个包含坐标的类:
public class Coordinates {
public double Latitude;
public double Longitude;
}
在您的活动中,创建一个类型为坐标的ArrayList或List个持有元素:
private ArrayList<Coordinates> coordinates = new ArrayList<Coordinates>();
在每个按钮上添加单击Arcles类型的新元素:
var cc = new Coordinates();
cc.Latitude = lat;
cc.Longitude = lon;
this.coordinates.add(cc);
稍后您需要坐标时,只需使用get或remove获取坐标,然后使用坐标:
Coordinates cc = (Coordinates)this.coordinates.get(position);
// cc.Latitude ...
这样您就拥有了灵活的数组。