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)。将此值添加到当前位置坐标可为您提供介于 Old X +- 半径之间的值。概括:

(-1和1之间的随机数)*半径+(旧x)=旧x半径内的新x。

随机数的示例代码(OBS!从 0 到 1):

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 回答