如何在多边形中生成随机LatLng坐标?

时间:2013-02-25 10:15:19

标签: android

我需要在地图上定义的多边形中生成随机LatLng点 假设我的第一个点在(x,y)处,并且下一个latlng将大于100米且小于500米

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

这很简单。

  1. 获取纬度和经度的最大值和最小值。
  2. 生成经度的随机值(使用均匀分布)。
  3. 生成纬度的随机值(您可以使用均匀分布或考虑地球的形状)。
  4. 检查随机点是否在多边形内部,如果没有,则再试一次。