バウンディングボックス内にランダムなLat/Lngを作成しようとしています。以下のコードはLat/Lngsを作成し、それらはマップ上にプロットされます...そしてそれらは正しい国にありますが、正しい「ボックス」にはありません
私のバウンディングボックスは次のようになります。
top_left = 51.514881121099904, -0.1293877362387679
bottom_right = 51.492151803709525, -0.09693947143827275
minLat = 51.514881121099904
maxLat = 51.492151803709525
minLng = -0.09693947143827275
maxLng = -0.1293877362387679
私のコードは次のようになります。
markers = []
10.times do
x = minLat + rand(maxLat - minLat)
y = minLng + rand(maxLng - minLng)
latLng = [x,y]
markers << latLng
end
markers.each do |x|
puts "#{x[0]} , #{x[1]}"
end
しかし、それは正しいlat/Lngsを出力していません。私が間違っていることはありますか?私はこれを間違った方法で見ていますか?
たとえば、1回の実行で次の出力が得られます。
51.51778835694538 , 0.8479098023328967
51.56834519895925 , 0.70003581382595
52.47933844269927 , 0.6167209565236026
51.52116824209034 , 0.8997051592766233
52.26830135905681 , 0.7514635122980192
52.143607260212896 , 0.21838042686322268
52.04649651836466 , 0.6683244476203801
52.057410769358576 , -0.08734906181439461
52.053408170846915 , 0.1600069328435182
51.8991829618331 , 0.3993135670912452
しかし、明らかに52.26830135905681は最小緯度と最大緯度の間にありません...だから私は少し混乱しています
rand()は何らかのソートまたは切り上げを行いますか?それはそのような大きなフロートで動作しますか?