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
我正在 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