我在地图上有2个点,周围有一个区域(比方说5英里),我需要弄清楚它们是否相交。例如,假设每个点周围都有一个圆,其半径为5英里。我需要弄清楚这两个圆是否重叠。有人能指出我可以做到这一点的数学吗?
顺便说一句,我正在使用Solr进行其他地理空间搜索。有谁知道这是否可以用Solr完成?
谢谢!
答案 0 :(得分:8)
只需占据圆圈中心之间的距离即可。如果它小于r1 + r2,那么它们会重叠。
int distance = calculateDistance();
int r1 = circle1.getRadius();
int r2 circle2.getRadius();
boolean overlap = distance < r1+r2;