【发布时间】:2015-08-18 10:09:39
【问题描述】:
我正在尝试在 LatLng 点之间计算 distance。计算两个坐标很容易。我必须计算两个以上LatLngs 之间的距离,并计算一组 LatLngs 的累积距离。我根据以下代码计算了两点之间的距离。
tvDistance=(TextView)findViewById(R.id.textView4);
Location loc1=new Location("");
loc1.setLatitude(11.2805);
loc1.setLongitude(77.5989);
Location loc2=new Location("");
loc2.setLatitude(11.2801);
loc2.setLongitude(77.5976);
DecimalFormat format=new DecimalFormat("#.##");
double distanceInMeters = loc1.distanceTo(loc2)/1000;
tvDistance.setText(format.format(distanceInMeters) + " Km's");
现在我有例如 16 个LatLng 点。首先是出发地,最后是停止地。我在ArrayList 中有LatLngs。尝试了以下代码。但它导致ArrayIndexOutOfBoundException。
有谁知道方法请分享给我。谢谢。
private void calculateDistance() {
for (int i=0;i<coordList.size();i++){
LatLng l1=coordList.get(i);
double lat1=l1.latitude;
double lng1=l1.longitude;
Location location1=new Location("");
location1.setLatitude(lat1);
location1.setLongitude(lng1);
LatLng l2=coordList.get(i+1);
double lat2=l2.latitude;
double lng2=l2.longitude;
Location location2=new Location("");
location2.setLatitude(lat2);
location2.setLongitude(lng2);
DecimalFormat format=new DecimalFormat("#.##");
double distance=location1.distanceTo(location2)/1000;
Toast.makeText(MainPage.this,format.format(distance) + " Km's",Toast.LENGTH_SHORT).show();
}
}
【问题讨论】:
-
这是一个有趣的寻找循环。
-
这一行为 (int i=0;i
标签: android gps location distance latitude-longitude