サーバーから位置情報を取得したデータを使用して、javascript を使用してページに追加する必要がある要素がいくつかあります。重ならないように並べたい。たとえばelement 5
、薄い緑色のボックスがある場所に移動して、重ならないようにしelement 3
ます。
2 つのボックスが重なるかどうかを判断する関数の作成に成功しました。たとえば、実行overlaps($('#element5')[0],$('#element3')[0])
すると、 が返されtrue
ます。
ただし、この関数を使用すると、各要素をループして、他のすべての要素と比較する必要があります。したがって、50 要素の場合、関数を 1275 回実行する必要があり、overlays
ロードに時間がかかります。
最初に要素を整理するための rtree を作成するのが最善であると判断しました。これにより、オーバーレイ関数を実行する必要がある 2 つの要素を簡単に見つけ出すことができ、オーバーレイ関数の実行回数を大幅に減らすことができます。ただし、これがどのように機能するかについては非常に混乱しています。少数でのみ関数を実行する必要があるように、それらをどのように整理しますか? rtree のバウンディング ボックスの 2 つが重なって、この手法が冗長になるのではないでしょうか? これを行う最良の方法は何ですか?