边界框中的随机点(Lat、Lng)
Posted
技术标签:
【中文标题】边界框中的随机点(Lat、Lng)【英文标题】:Random points (Lat, Lng) in bounding box 【发布时间】:2016-05-08 21:58:13 【问题描述】:我想在边界框中找到具有纬度/经度的随机点。
我在下面定义了边界框:
[bbox] => Object (
[lat] => Array (
[min] => 51.319503485716
[max] => 56.169129950579
)
[lon] => Array (
[min] => 23.199493849386
[max] => 32.693643019346
)
)
我的功能:
$x_max = $polygon->bbox['lat']['max'];
$x_min = $polygon->bbox['lat']['min'];
$y_max = $polygon->bbox['lon']['max'];
$y_min = $polygon->bbox['lon']['min'];
$lat = $y_min + mt_rand($y_min, $y_max);
$lng = $x_min + mt_rand($x_min, $x_max);
但是上面的函数返回错误的结果。
我该如何解决?
【问题讨论】:
【参考方案1】:你需要一个浮点随机数,而mt_rand
返回一个整数。试试这个:
$lat = $y_min + ($y_max - $y_min) * (mt_rand() / mt_getrandmax());
$lng = $x_min + ($x_max - $x_min) * (mt_rand() / mt_getrandmax());
【讨论】:
以上是关于边界框中的随机点(Lat、Lng)的主要内容,如果未能解决你的问题,请参考以下文章
如何在限制点之间的最大距离和每个集群的最大点数的情况下对 lat/lng 数据进行聚类