简体   繁体   English

边界框中的随机点 (Lat, Lng)

[英]Random points (Lat, Lng) in bounding box

I want to find random point with latitude/longitude in the bounding box.我想在边界框中找到具有纬度/经度的随机点。

I have bounding box defined below:我在下面定义了边界框:

[bbox] => Object (
   [lat] => Array (
     [min] => 51.319503485716
     [max] => 56.169129950579
   )
   [lon] => Array (
     [min] => 23.199493849386
     [max] => 32.693643019346
   )
)

My function:我的功能:

$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);

But the function above returns wrong results.但是上面的函数返回错误的结果。

How can I fix it?我该如何解决?

You need a float random number, while mt_rand returns an int.您需要一个浮点随机数,而mt_rand返回一个 int。 Try with this:试试这个:

$lat = $y_min + ($y_max - $y_min) * (mt_rand() / mt_getrandmax());
$lng = $x_min + ($x_max - $x_min) * (mt_rand() / mt_getrandmax());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM