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

时间:2012-05-14 07:14:12

标签: solr geospatial latitude-longitude geo

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

顺便说一句,我正在使用Solr进行其他地理空间搜索。有谁知道这是否可以用Solr完成?

谢谢!

1 个答案:

答案 0 :(得分:8)

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

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

boolean overlap = distance < r1+r2;