SQL litデータベースから最も近い場所を取得するためにAndroidの現在の場所に応じて最も近い1000メートルの緯度と経度を見つける方法
3 に答える
2
あなたが電話のデータベースを使ってすべての場所を保存している理由がわかりません。サーバー側を使用する方が安全です。緯度と経度がデータベース テーブルに保存されていると仮定すると、変更はクエリでのみ必要になります。以下は、私の問題を解決した SQL クエリです。
"SELECT * FROM places WHERE (acos(sin(places.lat * 0.0175) * sin($userLat * 0.0175) + cos(places.lat * 0.0175) * cos($userLat * 0.0175) * cos(($userLon * 0.0175) - (places.lon * 0.0175))) * 3959 <= $locateRadius)"
//userLat and userLon refer to your current location
于 2015-06-16T18:19:16.470 に答える
0
別のアプリに明示的に保存しない限り、現在の場所を電話のデータベースに保存しないでください。
これはあなたの主な活動にあるべきです:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistener = new mylocationlistener();
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationlistener);
...
private class mylocationlistener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.d("latitude", location.getLatitude());
Log.d("longitude", location.getLongitude());
}
}
}
于 2012-09-05T04:39:27.717 に答える
0
実際、あなたの質問はアルゴリズムに関するものだと思いますよね?
このドキュメントでは、幾何学的近似のデータ構造とアルゴリズムについて説明しています。役に立つかもしれません。
于 2012-09-05T04:44:10.867 に答える