这似乎是一个重复的问题,但事实并非如此。请在将其标记为重复之前阅读
我试图获得两个LatLng之间的距离,所以首先我生成它的 PolylineOptions ,
现在的问题是 - 输出是不可理解的。
它与其他问题不同,因为它使用PolylineOptions。
计算代码
@Override
public void onParserTaskComplete(PolylineOptions points, int count) {
if (points != null) {
float totalDistance = 0;
for (int i = 1; i < points.getPoints().size(); i++) {
Location currLocation = new Location("this");
currLocation.setLatitude(points.getPoints().get(i).latitude);
currLocation.setLongitude(points.getPoints().get(i).longitude);
Location lastLocation = new Location("this");
currLocation.setLatitude(points.getPoints().get(i - 1).latitude);
currLocation.setLongitude(points.getPoints().get(i - 1).longitude);
totalDistance += lastLocation.distanceTo(currLocation);
}
items.get(count).setDistance(String.valueOf(totalDistance));
adapter.notifyDataSetChanged();
} else {
items.get(count).setDistance("");
adapter.notifyDataSetChanged();
}
}
根据谷歌地图,距离应该在 5.5KM 附近 但输出结果如 8783711.0
问题 - 如何将此值转换为KM?
答案 0 :(得分:0)
您复制了currLocation并且没有为lastLocation设置值 这是正确的方法:
>>> def return_this(this):
... return this
...
>>> return_this(5)
5
>>> return_this(None)
>>> print return_this(5)
5
>>> print return_this(None)
None
>>> 5
5
>>> None
>>>