緯度の180度(-90〜90)と経度360度(180 -180)は、典型的に存在します。
したがって、緯度が1万8千分の1増分(つまり、-90.00、-89.99、... 89.99、90.00)、および経度が36,000分の1増分です。
これを2次元配列に配置したとします。 .05度の増分が必要な場合は、緯度に3,600(18,000/5)行、緯度に7,200列(36,000/5)行が必要です。
したがって、経度/緯度を2つの配列インデックスに変換する必要があります。ここには1つの方法があります:
- -90から90の範囲にある緯度の数字をとり、90を追加します。これにより、0から180までの数値が得られます。
- 100を掛けて四捨五入します。それはあなたに0から18,000までの数字を与えます。
- あなたの行インデックスです5.
で割ます。
経度と同じことを行いますが、180を加えて0〜360の数値を取得します。これにより、列番号が提供されます。
例:
オースティンの場所は、TXは緯度である:30.267、LNG:-97.743
30.267 + 90 = 120.267
120.267 * 1000 = 12027 (rounded up)
12027/5 = 2405
-97.743 + 180 = 82.257
82.257 * 1000 = 8226 (rounded up)
8226/5 = 1645
だから、オースティン、TXは(2450,1645)バケツに行くだろう
のもちろん、インデックスを緯度と経度に変換することは、元の変換の逆です。緯度の場合は5を掛け、1000で割って90を引いてください。
最初の考えはちょうど除算とフロアですが、「0.15/0.05」は例ではありません。おそらく100で乗算し、フロアを5で割りますか? –
地球は平らではないので、あなたのバケツは極に近づくにつれて次第に三角形になります。つまり、おおまかに言えば、あなたの最大のバケツはもっと多くの人がいるところにあります。問題のドメインがすべて人口の影響を受けるなら、本当に悪いかもしれません。(もちろん、パッチが赤道近くにある場合は特に、地球の小さなパッチに興味があるかどうかは関係ありません) – rici
あなたの質問は何ですか?何か試しましたか? 0から1000の間のすべての整数を2で割った結果に基づいてバケットに入れたい場合、いくつのバケツが必要ですか?あなたがその問題を解決できるなら、あなたはこの問題を解決することができます。 –