2016-05-08 15 views
2

Ich möchte einen zufälligen Punkt mit der Breite/Länge in der Bounding Box finden.Random Punkte (Lat, Lng) in Bounding Box

Ich habe Begrenzungsbox unten definiert:

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

Meine Funktion:

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

Aber die Funktion gibt über falsche Ergebnisse.

Wie kann ich es beheben?

Antwort

1

Sie benötigen eine Float-Zufallszahl, während mt_rand einen int zurückgibt. Versuchen Sie damit:

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