【问题标题】:How to test if a point inside area with lat/lon and radius using Java?如何使用Java测试区域内的点是否具有纬度/经度和半径?
【发布时间】:2011-09-26 07:56:33
【问题描述】:

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

public class Position {
double longitude;
double latitude;
}

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

因此,如果point 在以center 为中心且以radius 为半径(以英里 为单位)的area 内,则应返回truefalse否则。

【问题讨论】:

  • 其实我没有这方面的经验。但我看到应该使用Haversine 公式。

标签: java latitude-longitude point area


【解决方案1】:

使用Haversine formula 计算centerpoint 之间的距离。如果该距离大于radius,则返回false;否则返回true

伪代码:

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

def isInsideTheArea (center, radius, point):
    return haversineDistance(center, point) <= radius

【讨论】:

  • 谢谢,我试试看。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多