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 - 使用大圆公式计算两个坐标之间的距离。