3

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

public class Position {
double longitude;
double latitude;
}

boolean isInsideTheArea(Position center, double radius, Position point);

因此,如果pointareacenter为中心和以英里radius为单位的半径的内部,则 this 应该返回,否则。truefalse

4

2 回答 2

7

使用Haversine 公式center计算和之间的距离point。如果该距离大于radius,则返回false;否则返回true

伪代码:

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

def isInsideTheArea (center, radius, point):
    return haversineDistance(center, point) <= radius
于 2011-06-30T21:04:46.930 回答
1

希望这有帮助 还有一些实现示例 http://en.wikipedia.org/wiki/Haversine_formula

于 2011-06-30T21:05:40.690 回答