1

地図上に2つのポイントがあり、その周囲に1つのエリア(たとえば5マイル)があり、それらが交差するかどうかを確認する必要があります。たとえば、各ポイントの周囲に半径5マイルの円があるとします。これらの2つの円が重なっているかどうかを確認する必要があります。誰かがこれを達成できる数学を私に指摘できますか?

余談ですが、私は他の地理空間検索に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 に答える