-2

SQL litデータベースから最も近い場所を取得するためにAndroidの現在の場所に応じて最も近い1000メートルの緯度と経度を見つける方法

4

3 に答える 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

実際、あなたの質問はアルゴリズムに関するものだと思いますよね?

このドキュメントでは、幾何学的近似のデータ構造とアルゴリズムについて説明しています。役に立つかもしれません。

https://www.box.com/s/7lomb99vsmjsh77ud4eh

于 2012-09-05T04:44:10.867 に答える