2

ゴール

Android フォンの現在位置の信号強度をログに記録します。そして、それらをすべて地図上に表示します。

保管されているもの

Android の sqlite データベース内の < 経度、緯度、値 > の形式のレコード。データを保存および取得するための抽象化レイヤーとして ORMLite を使用します。

私が作成しているアプリケーション (ロギング) では、本当に多くのポイントが作成されます。実際、500ミリ秒ごとにログエントリを作成する必要があります

私がこれまでにしていること

範囲間の経度と緯度でログポイントをクエリします。しかし、これは本当に非効率的な O(n) です (間違っていたら訂正してください)

私が作成しているアプリケーション(ロギング)では、

私の質問

どのインデックス方法を使用すればよいですか。それとも、別のアプローチを取る必要がありますか?

4

1 に答える 1

0

私は似たようなことをしたことがあります。私は 5 分ごとにユーザーの位置を取得していましたが、位置を取得するときは、1 分間 500 ミリ秒ごとに位置をキャプチャしていました (最も正確な位置を取得するためにこれを行っていました)。場所はメモリ内リストに保存されました。1 分が経過した後、精度の低い順に並べ替え、リストの最初のものを取り、残りを破棄しました。次に、SQLLite データベースから最後の場所を取得し、2 つの場所を比較しました。新しい場所が以前の場所と同じ場合 (50 メートルの許容範囲内)、新しい場所を破棄しました。そうでない場合は、データベースにコミットされています。このようにして、最も正確な読み取り値を取得し、マップする場所が何百も重ならないようにしました。

于 2012-08-22T20:59:28.137 に答える