【问题标题】:Random points (Lat, Lng) in bounding box边界框中的随机点(Lat、Lng)
【发布时间】: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);

但是上面的函数返回错误的结果。

我该如何解决?

【问题讨论】:

    标签: php geolocation latitude-longitude


    【解决方案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());
    

    【讨论】:

      猜你喜欢
      • 2011-07-23
      • 2011-11-19
      • 2011-02-07
      • 2016-02-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多