これは私がデータベースに保存されたGPSデータとオブジェクトのソート句を取得するために使用されている方法である。
public String getOrderString(double latitude, double longitude) {
double fudge = Math.pow(Math.cos(Math.toRadians(latitude)), 2);
return "((" + latitude + " - " + KEY_LATITUDE + ") * (" + latitude
+ " - " + KEY_LATITUDE + ") + (" + longitude + " - "
+ KEY_LONGITUDE + ") * (" + longitude + " - " + KEY_LONGITUDE
+ ") * " + fudge + ") ASC";
}
がhereから「借りました」。ファッジファクターについての私の理解は、赤道の近くにない座標を考慮に入れていることです。この方程式は今まで私にとってはうまくいきましたし、かなり速いです。
public int removeBuildingEntry(double latitude, double longitude, double threshold) {
String where = getWhereString(double latitude, double longitude, double threshold)
return db.delete(TABLE, where, null);
}
唯一の問題は私にはないということです。そして、あなたの削除方法は次のようになります
public String getWhereString(double latitude, double longitude, double threshold) {
double fudge = Math.pow(Math.cos(Math.toRadians(latitude)), 2);
return "((" + latitude + " - " + KEY_LATITUDE + ") * (" + latitude
+ " - " + KEY_LATITUDE + ") + (" + longitude + " - "
+ KEY_LONGITUDE + ") * (" + longitude + " - " + KEY_LONGITUDE
+ ") * " + fudge + ") < " + threshold;
}
:
は今、私はあなたが何かをすることによって、同じ式を利用することができると思います方程式の結果の単位を知っていて、それであなたがしきい値として渡すべきもの。私の状況では、私は秩序だけを望むので、私はそれらを気にしませんが、あなたの場合は違いを生むかもしれません。より正確な数値が必要な場合は、別の値で再生したり、計算したりすることができます。
この回答を見るhttp://stackoverflow.com/a/12997900/779408 – breceivemail