0

マップで定義されたポリゴンでランダムな LatLng ポイントを生成する必要があります。最初のポイントが (x,y) で始まり、次の latlng が 100 メートルを超え、500 メートル未満であると仮定します。

4

2 に答える 2

1

以下のようなものを試すことができます。これは、HashMapを使用して一意の乱数を作成します。

public void getRandomPosistions(int endPoint, int total)
{
    Set<Point> set = new HashSet<Point>();
    Random position = new Random();
    Point point;

    Point usedPos = new Point();
    // Starting Position
    usedPos.x = 100;
    usedPos.y = 100;
    set.add(usedPos);

    do
    {
        point = new Point();
        point.x=position.nextInt(endPoint);
        point.y=position.nextInt(endPoint);
        set.add(point);
    }
    while(set.size() < (total));

    List<Object> positionList = new ArrayList<Object>(set);
}
于 2013-02-25T10:34:23.753 に答える
0

これは非常に簡単です。

  1. 緯度と経度の最大値と最小値を取得します。
  2. 経度のランダムな値を生成します (一様分布を使用)。
  3. 緯度のランダムな値を生成します (一様分布を使用するか、地球の形状を考慮することができます)。
  4. ランダムな点がポリゴンの内側にあるかどうかを確認し、そうでない場合は再試行してください。
于 2013-02-25T10:39:51.367 に答える