计算如果地图上的2个圆相交

thr*_*eez 1 solr geospatial geo latitude-longitude

我在地图上有2个点,周围有一个区域(比如说5英里),我需要弄清楚它们是否相交.例如,假设每个点周围都有一个圆,其半径为5英里.我需要弄清楚这两个圆是否重叠.有人能指出我可以做到这一点的数学吗?

另外,我正在使用Solr进行其他地理空间搜索.有谁知道这是否可以用Solr完成?

谢谢!

nha*_*man 8

只需占据圆圈中心之间的距离即可.如果它小于r1 + r2,则它们重叠.

int distance = calculateDistance();
int r1 = circle1.getRadius();
int r2 circle2.getRadius();

boolean overlap = distance < r1+r2;
Run Code Online (Sandbox Code Playgroud)