我想在我所在位置周围的圆圈内生成随机纬度/经度对。
目前我已经实现了一个位置监听器,每当我得到一个新位置时,我想在我附近绘制随机位置。
我能够计算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;
}
但实际上,我无法找到如何在我的范围内生成位置。
这里有什么帮助吗?非常感谢你。
答案 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)
我认为,通常它一直在工作,但我无法尝试在设备上设置它