random-location-generator
ランダム位置生成ツールは、有効な緯度と経度の値の組をランダムに生成し、結果を10進座標の形式でインタラクティブな世界地図上に表示する無料ツールである。アプリの位置情報機能のテストや、地理の授業での座標学習に適している。生成される座標は北緯・南緯90度、東経・西経180度の範囲内に収まるよう制御されている。
ランダム位置生成器
ドキュメンテーション
ランダム地点生成ツールは、緯度と経度という地理座標のランダムな組み合わせを生成するツールです。生成される各結果は、外洋から市街地の道路、山頂まで、地球上のどこにでも位置する可能性のある一点を示します。
ツールが生成するもの
クリックするたびに、-90°から90°までの緯度の値が1つ、-180°から180°までの経度の値が1つ生成されます。ツールは両方の数値を十進度で表示します。たとえば、60.0000° N、90.0000° Wのように表示し、簡単な世界地図上にその地点を示します。緯度が負の値の場合、その地点は赤道より南にあります。経度が負の値の場合、英国のグリニッジを通る本初子午線より西にあります。
ランダム地点生成ツールの使い方
- Generateボタンを押します。
- ボタンの下に表示される座標を、N/SおよびE/Wの方位とともに読み取ります。
- 世界地図上のマーカーを確認し、その地点がだいたいどこにあるかを見ます。
- Copyを押して、座標を他の場所で使うためにコピーします。
- 新しい地点を生成するには、もう一度Generateを押します。実行できる回数に制限はありません。
- Resetを押して結果を消去し、最初からやり直します。
座標の計算方法(式)
経度は単純です。一様に選ばれるため、-180°から180°までのすべての値が同じ確率で選ばれます。式は次のとおりです。
ここで、λは度数で表した経度、vは0から1までのランダムな数です。
緯度は異なる方法で扱います。ここが、よく間違えられる部分です。使用する式は次のとおりです。
ここで、φはラジアンから度数に変換した緯度、uは0から1までの別のランダムな数、arcsinは正弦関数の逆関数です。
緯度を単純な乱数で選ばない理由
極に近い緯度円は短くなります。赤道上の緯度円は長く、地球の大部分を取り囲んでいます。もし緯度を-90から90までの単純な乱数で選ぶと、地球の表面積に占める割合が赤道付近よりはるかに小さい極付近の緯度円にも、各緯度が同じ数の結果を受け持つことになります。そのため、極付近に点が偏りすぎます。
逆正弦の式によって、この問題が解決されます。極にどれほど近いかにかかわらず、地球表面の各部分が同じ確率で選ばれるように点を分布させます。この考え方は球面上の点の一様サンプリングと呼ばれ、アルキメデスの帽子箱定理と呼ばれることもある規則に基づいています。緯度帯の表面積は、その境界の緯度の度数差ではなく、境界の正弦の差によって決まります。
計算例
生成器が2つの乱数を生成するとします。緯度にはu = 0.9330127、経度にはv = 0.25を使います。
- 緯度 = arcsin(2 × 0.9330127 − 1) = arcsin(0.8660254) = 60°
- 経度 = 0.25 × 360 − 180 = -90°
結果は60.0000° N、90.0000° Wとなり、カナダ北部のハドソン湾付近の地点を示します。
コード例
同じ2つの手順はどのプログラミング言語でも使えます。0から1までの乱数を2つ生成し、1つ目に逆正弦の公式を適用して緯度を求め、2つ目をスケーリングして経度を求めます。
Python
1import random
2import math
3
4def generate_random_coordinates():
5 u = random.random()
6 v = random.random()
7 latitude = math.degrees(math.asin(2 * u - 1))
8 longitude = v * 360 - 180
9 return latitude, longitude
10JavaScript
1function generateRandomCoordinates() {
2 const u = Math.random();
3 const v = Math.random();
4 const latitude = Math.asin(2 * u - 1) * (180 / Math.PI);
5 const longitude = v * 360 - 180;
6 return { latitude, longitude };
7}
8逆正弦の手順を省き、緯度をrandom.uniform(-90, 90)として選ぶ簡略版は書きやすいものの、地球表面全体に均等に点を分布させる代わりに、極付近に点が集中します。
一般的な用途
ソフトウェア開発者は、テスト用データを手作業で選ばずにGPS機能、地図の描画、位置情報を利用するアプリをテストするため、ランダムな座標を使います。ゲームデザイナーは、出現地点や宝探しの場所を配置するために使います。教師は、生徒と緯度・経度の読み取りを練習するために使います。研究者は、フィールド調査で偏りのないサンプル地点を選ぶために使います。逆正弦法によって、地球上の特定の地域が有利になることを避けられるためです。
よくある質問
座標はどのような形式ですか?
十進度(DD)です。たとえば、40.7128° N、74.0060° Wのように表します。これは、Google マップを含むほとんどの地図サービスやGPS機器で使われている形式です。
ランダムな座標の多くが海上になるのはなぜですか?
水域は地球表面の約71%を占めるため、真にランダムな地点は陸地よりも海上に位置する可能性が高くなります。これは予想される結果であり、座標が均等に分布していることを示します。ツールの欠陥ではありません。
1つの国または大陸だけの座標を生成できますか?
いいえ。このツールは地球上のどこからでも地点を選びます。結果を特定の地域に限定するには、生成後に座標を追加でフィルタリングするか、境界の制限を組み込んだツールを使う必要があります。
座標の精度はどの程度ですか?
各値は小数点以下4桁です。緯度の場合、これは地球上のどこでも約11メートル(36フィート (11 m))の精度に相当します。経度では、同じ4桁が赤道付近で約11メートルの範囲を表しますが、経線は極に近づくほど互いに近くなるため、極に近い場所ではその距離は小さくなります。
座標は実在する地点を示しますか?
はい。すべての結果は、地球表面上の数学的に有効な地点です。ただし、外洋、氷上、または近くに集落がない場所になることがあります。
十進度を度・分・秒(DMS)に変換するにはどうすればよいですか?
整数部分を度とします。小数部分に60を掛けて分を求めます。その結果の小数部分にもう一度60を掛けて秒を求めます。