/ Equal Earth

Equal Earth 図法を GPU で描く

Equal Earth 図法の、動かせる世界図
正積 · WebGPU、無ければ WebGL2 · 中央経線は視点に付いてくる · 地球儀からの変形

地球儀は一度に地球の半分しか見せられません。地球全体を 1 枚に見せるため、Ortho Earth は Equal Earth 図法(Šavrič・Patterson・Jenny、2018)を使います。正積の擬円筒図法で、どの国も本当の大きさの比で描かれます。 /equal/ で試せます。地球儀を Equal Earth の側で開くなら /globe/?start=equal です。

1. 図法はシェーダの中

世界のデータ(Natural Earth 10m の国境・海岸線・湖・川・都市。Gint として読む)は、経緯度のまま一度だけ GPU へ送ります。 図法そのものはシェーダの中にあり、頂点の段が毎フレーム各点を Equal Earth の座標へ写します。 CPU で同じ式を使うのはカメラ(中心・ポインタの下の錨・縮小の下限)だけです。

// Equal Earth(単位球)。θ=パラメトリック緯度、Δλ=経度 − 中央経線
sin θ = (√3 / 2) · sin φ
y  = θ · (A1 + A2·θ² + θ⁶·(A3 + A4·θ²))
x  = Δλ · cos θ / ((√3 / 2) · (A1 + 3·A2·θ² + θ⁶·(7·A3 + 9·A4·θ²)))
// A1 = 1.340264, A2 = −0.081106, A3 = 0.000893, A4 = 0.003796

2 つの描き手は同じ絵を描きます。既定は WebGPU、WebGPU が無ければ WebGL2 で、実機の GPU で互いに見比べています。

2. 中央経線は視点に付いてくる

中央経線は、いつも画面の中心の経度です。経度は中心からの差 Δλ としてしか図法に入らないので、横にスクロールすると新しい中心のまわりで描き直されます。 東へも西へも継ぎ目なく続き、見ている場所がいつも歪みの一番小さい所になります。縮小やスクロールで、地図の外形の外の余白は見せません。

3. 地球儀から変形して開く

地球儀の頁では、Equal Earth の世界図は今見ている地球儀から開きます。最初の 1 枚は同じカメラの同じ球で、画素まで一致させています。 そこから球が 1 秒あまりで Equal Earth の 1 枚へ開き、地図のデータはその動きの裏で読まれます。 地球儀の上で右クリックすると、その地点を中心に世界図を開けます。戻る時は、世界図が今の視点の地球儀へ畳まれます。 どちらも同じ頁の中で 1 つのエンジンを分け合うので、二度読みはしません。

4. 地図に載るもの

他の道具から来た人は MapLibre GL JS のコードを 3D の球へ と CesiumJS から来た人へ も見てください。

ortho-equal · GPL-3.0 · Kenji Yoshida · 2026