シナリオ: 緯度と経度の空間属性を持つ約 10,000 行以上のデータがあります。現在の場所に最も近いオブジェクト (約 300) を並べ替えて取得したいと考えています。
行われたこと: 緯度と経度が 2 倍のすべての行を格納する OrmLite オブジェクト テーブルを作成しました。現在、queryForAll を呼び出し、Comparable インターフェイス (distanceTo) を使用して、現在の場所からの距離順にデータを並べ替えています。
問題: 行数が 10K+ を超えると、上記のソリューションは非常に非効率的になり、並べ替え操作の実行に時間がかかります。
質問: A. Ormlite で空間データを処理したり、Android の場所を列として追加したりする方法はありますか? b. オブジェクトのリストを提供する生のクエリを呼び出すことはできますか?それ自体のクエリ中に並べ替えが行われるため、このアプローチをお勧めします。