如何使用Java测试带有lat/lon和radius的区域内的点?

moh*_*945 3 java point area latitude-longitude

我要编写一个具有以下签名的方法

public class Position {
double longitude;
double latitude;
}

boolean isInsideTheArea(Position center, double radius, Position point);
Run Code Online (Sandbox Code Playgroud)

因此,如果point在其内部area具有center作为其中心和radius英里为单位的半径,则应该返回true,false否则.

Mat*_*all 7

使用半正矢公式来计算之间的距离centerpoint.如果距离大于radius,则返回false; 否则返回true.

伪代码:

def haversineDistance(a, b):
    # snip...
    return foo

def isInsideTheArea (center, radius, point):
    return haversineDistance(center, point) <= radius
Run Code Online (Sandbox Code Playgroud)