Android 尝试对一个LatLng数组的距离求和
我试图求出一组板条之间的总距离,但很难做到。以下是到目前为止我得到的信息:Android 尝试对一个LatLng数组的距离求和,android,Android,我试图求出一组板条之间的总距离,但很难做到。以下是到目前为止我得到的信息: private double sumDistance() { Location loc = new Location("distance provider"); double previousLatitude; double previousLongitude; float[] results = new float[1]; for (LatLng latLng : mMapLis
private double sumDistance() {
Location loc = new Location("distance provider");
double previousLatitude;
double previousLongitude;
float[] results = new float[1];
for (LatLng latLng : mMapList) {
previousLatitude = latLng.latitude;
previousLongitude = latLng.longitude;
loc.distanceBetween(previousLatitude, previousLongitude, latLng.latitude, latLng.longitude, results);
}
return 0;
}
问题在于,这两种方法的板条相同。有没有什么方法可以让我得到以前的Latling或一个更干净的方法来做到这一点,我没有想到?double previousLatitude;
double previousLatitude;
double previousLongitude;
float[] results;
for (int i=0; i<mMapList.size(); ++i) {
LatLng latLng = mMapList.get(i);
if (i == 0) {
// Previous weren't set yet, nothing to measure
// Set them and skip loop
previousLatitude = latLng.latitude;
previousLongitude = latLng.longitude;
continue;
}
// Measure previous with current
loc.distanceBetween(previousLatitude, previousLongitude, latLng.latitude, latLng.longitude, results);
// ~ Use the distance
// Modify the previous ones
previousLatitude = latLng.latitude;
previousLongitude = latLng.longitude;
}
双经度;
浮动[]结果;
对于(int i=0;i双前纬度;
双经度;
浮动[]结果;
对于(inti=0;i为什么不在计算完距离后分配“前一个变量”?类似的方法应该可以
private double sumDistance() {
Location loc = new Location("distance provider");
double previousLatitude = mMapList.get(0).latitude;
double previousLongitude = mMapList.get(0).longitude;
float[] results;
for (int i=1;i<mMapList.size();i++) {
loc.distanceBetween(previousLatitude, previousLongitude, mMapList.get(i).latitude, mMapList.get(i).longitude, results);
previousLatitude = mMapList[i].latitude;
previousLongitude = mMapList[i].longitude;
}
return 0;
}
private双相距(){
位置loc=新位置(“距离提供商”);
double previousLatitude=mMapList.get(0).latitude;
double-previousLongitude=mMapList.get(0.longitude);
浮动[]结果;
对于(inti=1;i为什么不在计算完距离后分配“前一个变量”?类似的方法应该可以
private double sumDistance() {
Location loc = new Location("distance provider");
double previousLatitude = mMapList.get(0).latitude;
double previousLongitude = mMapList.get(0).longitude;
float[] results;
for (int i=1;i<mMapList.size();i++) {
loc.distanceBetween(previousLatitude, previousLongitude, mMapList.get(i).latitude, mMapList.get(i).longitude, results);
previousLatitude = mMapList[i].latitude;
previousLongitude = mMapList[i].longitude;
}
return 0;
}
private双相距(){
位置loc=新位置(“距离提供商”);
double previousLatitude=mMapList.get(0).latitude;
double-previousLongitude=mMapList.get(0.longitude);
浮动[]结果;
对于(int i=1;i-1-1
仍然是一个有效的坐标。使用Double
代替原语值,检查它是否为null。@PedroOliveira或检查它是否是我在更新的答案中所做的第一次迭代。我花了一秒钟的时间才弄明白这段代码,这是完美的、伟大的代码。-1-1
仍然是一个有效的c协调。使用Double
代替原语值并检查它是否为空。@PedroOliveira或检查它是否是我在更新的答案中所做的第一次迭代。我花了一秒钟的时间来了解这段代码,这是完美的、伟大的代码。也是伟大的代码,两者都完全按照他们的要求执行。:)这也是一个很棒的代码,它们都能完成它们应该做的事情。:)