1

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

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

谢谢!

4

1 回答 1

9

只需取圆心之间的距离即可。如果它小于 r1 + r2,则它们重叠。

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

boolean overlap = distance < r1+r2;
于 2012-05-14T07:17:43.053 回答