我需要在地图上定义的多边形中生成随机 LatLng 点假设我的第一个点开始于 (x,y) 并且下一个 latlng 将大于 100 米且小于 500 米
问问题
537 次
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
这很简单。
- 获取纬度和经度的最大值和最小值。
- 生成经度的随机值(使用均匀分布)。
- 生成纬度的随机值(您可以使用均匀分布或考虑地球的形状)。
- 检查随机点是否在多边形内,如果不是,请重试。
于 2013-02-25T10:39:51.367 回答