📐 数学ガイド&証明

ランダム地理座標の仕組み:球面の真実

ネット上の多くの座標生成器が抱える欠陥と、等面積球面投影が真に公平なランダム点を生み出す仕組みを解き明かします。

📐 数学的正確性

等面積球面分布 vs. 極地密集のバグ

多くの無料ツールは地球を長方形として扱っています。当サイトのアルゴリズムが正確な座標を保証する仕組みをご覧ください。

❌ 単純な平面乱数(競合ツールの欠陥)

数学的に誤り
// ❌ Flat 2D Rectangular Bug:
const lat = (Math.random() * 180) - 90;
const lng = (Math.random() * 360) - 180;

問題点:赤道の1°緯度帯は40,075kmあるのに対し、80°Nでは6,950kmしかありません。一様な緯度抽出は極地を400%過大評価します。

✅ Marsaglia等面積変換(当サイトの方式)

数学的に検証済み
// ✅ Marsaglia Equal-Area Sphere Math:
const u = Math.random();
const lat = Math.asin(2 * u - 1) * (180 / Math.PI);
const lng = -180 + Math.random() * 360;

解決策:緯度の正弦値sin(θ)を一様に抽出することで、面積の縮小cos(lat)を完全に相殺。すべての平方キロメートルが平等に抽出されます。

1. 平面矩形仮定の根本的な幾何学的欠陥

メルカトルなどの2次元平面地図では、地球は緯度-90°〜+90°、経度-180°〜+180°の平らな長方形として描かれます。

多くの初級チュートリアルでは次のような単純な式が紹介されています:

// ❌ Naive algorithm (Suffers from polar bias bug)
const latitude = (Math.random() * 180) - 90;
const longitude = (Math.random() * 360) - 180;

このコードは一見正しく見えますが、すべての緯度帯が同じ物理面積を持つと誤認しています。実際の球体では緯度線の長さはcos(緯度)で縮みます:

Circumference(θ) = 2πR · cos(θ)

赤道(0°)の全周は約40,075kmですが、北緯80°ではわずか6,950kmです。単純な平面乱数では、北極周辺の点の密度が赤道の5.7倍にも膨れ上がってしまいます!

2. Marsaglia等面積球面正弦変換アルゴリズム

球面上に均一な点を生み出すには、確率密度を表面積の微小要素に正確に比例させる必要があります:

dA = R² · cos(θ) dθ dφ = R² · d(sin θ) dφ

微小面積要素はd(sin θ)に比例するため、[-1, 1]の範囲でsin(θ)を一様にサンプリングします:

// ✅ Correct Archimedes-Lambert-Marsaglia equal-area algorithm:
function getRandomSpherePoint() {
  const u = Math.random(); // Uniform in [0, 1)
  const v = Math.random(); // Uniform in [0, 1)

  // Invert the cumulative distribution function:
  const sinLat = 2 * u - 1; // Uniform in [-1, 1]
  const latRad = Math.asin(sinLat); // In radians
  const lat = latRad * (180 / Math.PI); // In degrees [-90, +90]

  const lng = -180 + v * 360; // In degrees [-180, +180]

  return { lat, lng };
}

この美しい数学的変換により、地球上のすべての1平方キロメートルが全く等しい確率で選ばれることが保証されます。

3. 陸地棄却サンプリングとPRNG確定再現性

地球表面の約71%は海です。「陸地のみ」が選択された場合、効率的な棄却サンプリングを行います:

  1. 等面積な球面座標点を1つ生成。
  2. 大陸ポリゴン境界データと高速交差判定。
  3. 海洋上にある場合は破棄し、最大250回まで自動再生成。

研究や再現のために、53ビットのcyrb53ハッシュと32ビットのmulberry32乱数生成器を組み合わせ、同一シードから100%同一の結果を保証します。