java - 用经度和纬度计算半径

标签 java gis geospatial

<分区>

我正在尝试确定两个位置(每个位置都有自己的纬度和经度值)是否在彼此的特定距离内,例如 3 英里半径。我有 double 值来表示每个位置的纬度和经度。

//Location 1
Double lattitude1 = 40.7143528;
Double longitude1 = -74.0059731;

//Location 2
Double lattitude2 = 33.325;
Double longitude2 = 44.422000000000025;

我想知道如何确定这两个位置是否在彼此的半径内,因为我不完全确定如何使用此类值来执行此操作。

最佳答案

参见 Great Circle distance

double CoordDistance(double latitude1, double longitude1, double latitude2, double longitude2)
{
    return 6371 * Math.acos(
        Math.sin(latitude1) * Math.sin(latitude2)
        + Math.cos(latitude1) * Math.cos(latitude2) * Math.cos(longitude2 - longitude1));
}

如果您的纬度和经度以度为单位,请将它们转换为弧度。

关于java - 用经度和纬度计算半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372705/

相关文章:

python - 在python中的地理数据中查找圆圈内的所有坐标

java - BOX JAVA SDK : 1. 0.0:将代理设置添加到 BoxAPIConnection

java - 从 HashMap 访问对象

gis - 如何过滤空间数据

Python ArcGIS ArcPy 运行时错误 : NotInitialized

MySQL - 地理空间对象

java - SwingUtilities/Platform .runLater 之间有什么区别?

java - 正则表达式排除一个目录中的某些目录

gis - Openlayers 3.5 和 GeoJSON

mongodb - 如何在 MongoDB= 中的两个圆的差异内执行地理搜索