Java 生成随机板条

Java 生成随机板条,java,python,algorithm,google-maps,Java,Python,Algorithm,Google Maps,我需要它来对一些基于位置的web服务进行压力测试。输入是定义边界矩形的4对lat/lon或定义多边形的一组点 地图上是否有生成随机点的库/算法?(Python/java)在java中,可以使用Math.random() 例如,如果要生成介于1和10之间的随机数: int randomNumGenerated = (int)(Math.Random()*10) + 1; 您可以将其应用于您试图轻松解决的问题。在java中,您可以使用Math.random() 例如,如果要生成介于1和10之间的随

我需要它来对一些基于位置的web服务进行压力测试。输入是定义边界矩形的4对lat/lon或定义多边形的一组点


地图上是否有生成随机点的库/算法?(Python/java)

在java中,可以使用Math.random()

例如,如果要生成介于1和10之间的随机数:

int randomNumGenerated = (int)(Math.Random()*10) + 1;

您可以将其应用于您试图轻松解决的问题。

在java中,您可以使用Math.random()

例如,如果要生成介于1和10之间的随机数:

int randomNumGenerated = (int)(Math.Random()*10) + 1;

您可以将其应用于您试图轻松解决的问题。

为什么不将纬度作为-90和90之间的随机数生成,将经度作为-180和180之间的另一个随机数生成呢

那你说得对。然后,您可以生成任意数量的点来生成多边形

您可以在
a
b
之间生成一个随机数,如下所示:

rnum = a + rnd() * (b-a); // where rnd() gives a number from 0 to 1

为什么不把纬度作为一个-90到90之间的随机数,把经度作为另一个-180到180之间的随机数呢

那你说得对。然后,您可以生成任意数量的点来生成多边形

您可以在
a
b
之间生成一个随机数,如下所示:

rnum = a + rnd() * (b-a); // where rnd() gives a number from 0 to 1

简单:在地图的边框内,为每个点生成两个随机数,一个表示纬度,一个表示经度。

简单:在地图的边框内,为每个点生成两个随机数,一个表示纬度,一个表示经度。

双经度=Math.random()*Math.PI*2

或使用

public static LatLng random(Random r) {            

return new LatLng((r.nextDouble() * -180.0) + 90.0,
                                (r.nextDouble() * -360.0) + 180.0);
        }

双经度=Math.random()*Math.PI*2

或使用

public static LatLng random(Random r) {            

return new LatLng((r.nextDouble() * -180.0) + 90.0,
                                (r.nextDouble() * -360.0) + 180.0);
        }

看看这个问题,它涉及在任意4点凸多边形内生成点


看看这个问题,它涉及在任意4点凸多边形内生成点

上的这篇文章比我能解释的要好得多,为什么在区间[0,1]上生成2个随机数的简单方法会导致球体表面上的点分布不均匀。这可能是OP的问题,也可能不是OP的问题

但是,应该注意的是,在地球表面随机生成一组4点可能需要一些棘手的编程。考虑点(LAT/长,所有度)定义的“多边形”的情况<代码>(+5,90),(+ 5,-90),(-5,-90),(-5,90)< /代码>。点<代码>(0,0)位于这个多边形的内部还是外部?点呢
(0180)
?很容易生成这样模糊的多边形——球体的表面没有很好地用欧几里德平面建模

我会采取完全不同的方法——随机生成1个点,然后生成横向偏移和长偏移。这将在曲面上生成一个准矩形面片,您可以调整偏移的生成以避免不明确的多边形。如果要生成非准矩形的多边形,请生成一系列点和多边形,当它们组合在一起时,定义一个适合您需要的多边形。

这篇文章比我能解释的要好得多,为什么在区间[0,1]上生成2个随机数的简单方法会导致球体表面上的点分布不均匀。这可能是OP的问题,也可能不是OP的问题

但是,应该注意的是,在地球表面随机生成一组4点可能需要一些棘手的编程。考虑点(LAT/长,所有度)定义的“多边形”的情况<代码>(+5,90),(+ 5,-90),(-5,-90),(-5,90)< /代码>。点<代码>(0,0)位于这个多边形的内部还是外部?点呢
(0180)
?很容易生成这样模糊的多边形——球体的表面没有很好地用欧几里德平面建模


我会采取完全不同的方法——随机生成1个点,然后生成横向偏移和长偏移。这将在曲面上生成一个准矩形面片,您可以调整偏移的生成以避免不明确的多边形。如果要生成非准矩形的多边形,请生成一系列点和多边形,当组合起来时,定义一个适合你需要的多边形。

那么多边形可能不是正方形/矩形?是的。为了简单起见,我会从凸面开始。那么多边形可能不是正方形/矩形?是的。为了简单起见,我会从凸面开始。在处理4个不需要的点时,不清楚如何有效地应用这一点y表示一个矩形。您只需随机生成两个点,分别表示长和宽,例如(a,b)和(a,y),其中x坐标相同。然后随机生成矩形宽度,即br。第三个矩形点为(a,b+br)。第四个矩形点为(a,y+br)看看这个问题-随机点应该是一般多边形的一部分,而不一定是矩形。在处理不一定代表矩形的4个点时,不清楚如何有效地应用这一点。您只需要随机生成两个点,分别为Long和Lat,例如(a,b)和(a,y)其中x坐标相同。然后随机生成矩形宽度,即br。第三个矩形点是(a,b+br)。第四个矩形点是(a,y+br)。请看问题-随机点应该是一般多边形的一部分,而不一定是矩形。