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

标签 java latitude-longitude point area

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

public class Position {
double longitude;
double latitude;
}

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

因此,如果位于以center为中心、以radius为半径的区域内在 miles 中,这应该返回 true,否则返回 false

最佳答案

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

伪代码:

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

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

关于java - 如何使用 Java 测试一个点是否在具有纬度/经度和半径的区域内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6541056/

相关文章:

web-services - 如何在经度和纬度之外获得道路的标记速度限制

cocoa-touch - 将 Cocoa Touch 纬度/经度转换为不带度数符号的字符串

php - 合并两个MySQL查询并获取两个邮政编码之间的距离

immutability - Eiffel 中的不可变类

java - 是同步阻塞吗?

java - 如何使用 JAXB 将属性添加到 HashMap?

java - g++ 不适用于 Java

Go:函数返回指向内存的指针

java - 那么从: If 'slope' is not sufficient,点出发的具体方向是什么呢?

java - 为什么我的 RecyclerView 更新了而我没有通知适配器?