在我的位置附近生成随机位置

时间:2012-05-10 08:18:19

标签: android geolocation range

我想在我所在位置周围的圆圈内生成随机纬度/经度对。

目前我已经实现了一个位置监听器,每当我得到一个新位置时,我想在我附近绘制随机位置。

我能够计算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;
}

但实际上,我无法找到如何在我的范围内生成位置。

这里有什么帮助吗?非常感谢你。

2 个答案:

答案 0 :(得分:1)

如何自己随机生成坐标?使用当前位置,您可以设置这些数字的限制。使用当前坐标和半径,您可以获得随机数的跨度。跨度随机新X =旧X + - 半径

我建议在-1和1之间生成一个随机数,然后将其与半径相乘。这意味着生成的坐标的最大值是半径(min是-radius)。将此值添加到当前位置坐标将为您提供Old X + - radius之间的值。总结:

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

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

import java.util.Random;

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

以下是随机的java文档:Random

答案 1 :(得分:-1)

这似乎是一件好事。如果你想看看:http://android-er.blogspot.com/2011/02/get-list-of-address-from-location-using.html

我认为,通常它一直在工作,但我无法尝试在设备上设置它