如何使用Java测试一个点是否在具有纬度/经度和半径的区域内?

发布于 11-18 02:45 字数 353 浏览 2 评论 0原文

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

public class Position {
double longitude;
double latitude;
}

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

因此,如果 point 位于以 center 为中心且 area 内>radius 作为其以英里为单位的半径,这应该返回true,否则返回false

I've to write a method that has the following signature

public class Position {
double longitude;
double latitude;
}

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

So if point is inside the area that has the center as its center and radius as its radius in miles, this should return true, false otherwise.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无力看清2024-11-25 02:45:44

使用半正矢公式计算中心之间的距离。如果该距离大于radius,则返回false;否则返回true

伪代码:

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

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

Use the Haversine formula to compute the distance between center and point. If that distance is greater than radius, return false; otherwise return true.

Pseudocode:

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

def isInsideTheArea (center, radius, point):
    return haversineDistance(center, point) <= radius
回忆追雨的时光2024-11-25 02:45:44

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

hope this helps there are also some implementation examples
http://en.wikipedia.org/wiki/Haversine_formula

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文