RavenDB に次のようなドキュメントがあります。
public class MyClass
{
...
public double Latitude { get; set; }
public double Longitude { get; set; }
...
}
ここで、北緯と南緯、西経と東経で指定された長方形の境界内に位置するすべてのドキュメントを検索したいと考えています。
簡単なアプローチは、次のようなクエリです。
.Where(o => o.Latitude <= boundaryNorth &&
o.Latitude >= boundarySouth &&
o.Longitude >= boundaryWest &&
o.Longitude <= boundaryEast)
ただし、外接する四角形が正子午線を横切る場合は機能せず、クエリが複雑になります (これが該当するかどうかを確認し、外接する四角形を 2 つに分割し、前の式を 2 つ作成し、|| で結合します)。
空間インデックスを作成して、特定の起点から指定された半径内の位置にあるすべてのドキュメントに対してクエリを実行できることは知っていますが、そのインデックスをクエリする他の方法は見つかりませんでした。
空間インデックスをクエリする他の方法はありますか?