如何从android中的mapv2中的polylineoptions获取Ltlngs的总长度?

时间:2013-11-21 19:35:07

标签: android map google-maps-android-api-2

我有PolylineOptions,其中保存了一些纬度和经度。如果我想以KM /英里为单位获取这些位置的总长度/距离,那么api中是否有任何默认方法?有人可以帮忙吗?

1 个答案:

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