如何将双纬度和双经度设置为数组

时间:2013-07-08 17:05:58

标签: java arrays

你好,请看下面的代码。

        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。

2 个答案:

答案 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;
}

在您的活动中,创建一个类型为坐标的ArrayListList个持有元素:

private ArrayList<Coordinates> coordinates = new ArrayList<Coordinates>();

在每个按钮上添加单击Arcles类型的新元素:

var cc = new Coordinates();
cc.Latitude = lat;
cc.Longitude = lon;
this.coordinates.add(cc);

稍后您需要坐标时,只需使用getremove获取坐标,然后使用坐标:

Coordinates cc = (Coordinates)this.coordinates.get(position);
// cc.Latitude ...

这样您就拥有了灵活的数组。