java Java / Android - 使用大圆公式计算两个坐标之间的距离。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Java / Android - 使用大圆公式计算两个坐标之间的距离。相关的知识,希望对你有一定的参考价值。
import static java.lang.Math.acos;
import static java.lang.Math.cos;
import static java.lang.Math.sin;
/**
* Calculate distance between coordinates.
*/
public class DistanceCalculator {
static double PI_RAD = Math.PI / 180.0;
/**
* Use Great Circle distance formula to calculate distance between 2 coordinates in meters.
*/
public double greatCircleInFeet(LatLng latLng1, LatLng latLng2) {
return greatCircleInKilometers(latLng1.latitude, latLng1.longitude, latLng2.latitude,
latLng2.longitude) * 3280.84;
}
/**
* Use Great Circle distance formula to calculate distance between 2 coordinates in meters.
*/
public double greatCircleInMeters(LatLng latLng1, LatLng latLng2) {
return greatCircleInKilometers(latLng1.latitude, latLng1.longitude, latLng2.latitude,
latLng2.longitude) * 1000;
}
/**
* Use Great Circle distance formula to calculate distance between 2 coordinates in kilometers.
* https://software.intel.com/en-us/blogs/2012/11/25/calculating-geographic-distances-in-location-aware-apps
*/
public double greatCircleInKilometers(double lat1, double long1, double lat2, double long2) {
double phi1 = lat1 * PI_RAD;
double phi2 = lat2 * PI_RAD;
double lam1 = long1 * PI_RAD;
double lam2 = long2 * PI_RAD;
return 6371.01 * acos(sin(phi1) * sin(phi2) + cos(phi1) * cos(phi2) * cos(lam2 - lam1));
}
}
以上是关于java Java / Android - 使用大圆公式计算两个坐标之间的距离。的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android平台上使用JS直接调用Java方法
Unity3DUnity 中使用 C# 调用 Java ③ ( C# 调用 Java 实例 | 进行 Android 工程打包 | Android Studio 中运行 Android 工程 )
Unity3DUnity 中使用 C# 调用 Java ③ ( C# 调用 Java 实例 | 进行 Android 工程打包 | Android Studio 中运行 Android 工程 )
Java vs Kotlin 应该使用Kotlin进行Android开发吗
未能应用插件“com.android.internal.library”。 Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8
java Java / Android - 使用大圆公式计算两个坐标之间的距离。