1

現在地を囲む円の内側にランダムな緯度/経度のペアを生成したいと考えています。

現在、私は場所リスナーを実装しており、新しい場所を取得するたびに、近くのランダムな場所を描画したいと考えています。

私は2つの既存の場所の間の距離を計算し、それが私の範囲内にあるかどうかを知ることができます:

public List<Location> filter(Location current, List<Location> locations, int radius) {
    List<Location> results = new ArrayList<Location>();
    for (Location loc : locations) {
        if (current.distanceTo(loc) <= radius) {
            results.add(loc);
        }
    }
    return results;
}

しかし、実際には、範囲内で場所を生成する方法が見つかりません。

ここで何か助けはありますか?どうもありがとうございました。

4

2 に答える 2

1

自分でランダムに座標を生成してみませんか?現在の場所を使用して、これらの数に制限を設定できます。現在の座標と半径を使用して、乱数のスパンを取得します。ランダムな新しいXのスパン=古いX+-半径

-1から1の間の乱数を生成し、それを半径で乗算することをお勧めします。これは、生成された座標の最大値が半径であることを意味します(最小値は-radiusです)。この値を現在の位置座標に追加すると、OldX+-radiusの間の値が得られます。概要:

(-1から1までの乱数)* radius +(old x)=古いxの半径内の新しいx。

乱数のサンプルコード(0から1までのOBS!):

import java.util.Random;

Random r = new Random();
double zeroToOne = r.nextInt(1001) / 1000

ランダムに関するJavaドキュメントは次のとおりです。ランダム

于 2012-05-10T08:33:59.223 に答える
-1

それは良いことのようです。ご覧になりたい場合:http://android-er.blogspot.com/2011/02/get-list-of-address-from-location-using.html

通常は機能していると思いますが、デバイスでセットアップしようとすることができませんでした

于 2012-05-10T08:33:59.117 に答える