我有PolylineOptions,其中保存了一些纬度和经度。如果我想以KM /英里为单位获取这些位置的总长度/距离,那么api中是否有任何默认方法?有人可以帮忙吗?
答案 0 :(得分:3)
没有原生API。您可以对LatLng进行排序,并使用Location.distanceTo(Location)或Location.distanceBetween(double,double,double,double,float[])将它们之间的距离相加,它们使用的是WGS84椭圆体。结果将以米为单位。
编辑:
List<LatLng> latlngs = polylineOptions.getPoints();
int size = latlngs.size() - 1;
float[] results = new float[1];
float sum = 0;
for(int i = 0; i < size; i++){
Location.distanceBetween(
latlangs.get(i).latitude,
latlangs.get(i).longitude,
latlangs.get(i+1).latitude,
latlangs.get(i+1).longitude,
results);
sum += results[0];
}