Android 中的 GMSGeometryLength

GMSGeometryLength in Android

我正在 Android 上移植 iOS 代码,我需要获取多段线的长度,我将其作为 LatLng 数组。

这是我要复制的 IOS 应用的代码:

     GMSPath *pathOfStep = nextDict[@"path"];
                double progressOnStep = GMSGeometryLength(pathOfStep);

现在如何才能在 android 上获得相同的长度? 我可以做一个遍历 LatLng 列表并为它们中的每一个创建 Location 并计算从每个添加它们到下一个的距离。但我正在寻找一个更优化的选项。 有什么想法吗?

您要查找的是Google Maps Android API utility library。 该库有一个 class SphericalUtil 提供静态方法

public static double computeLength(List<LatLng> path);

该库还包含其他几种用于计算面积、航向和其他内容的便捷方法。

只需将库作为依赖项添加到 build.gradle 文件中即可。

F.ex.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services-maps:6.5.87'
    compile 'com.google.android.gms:play-services-location:6.5.87'
    compile 'com.google.maps.android:android-maps-utils:0.3.4'   
}

项目在Github

https://github.com/googlemaps/android-maps-utils