GIS
geojson
PostGIS

地理座標(経緯度)の内部表現

こんにちは。
地理情報システム(GIS)における地理座標の内部表現は、(経度 $\lambda$、緯度 $\phi$)の以外にも下記のように数種類あるようです(もしくは考えられます)1

(1) ($\lambda$、$\phi$): (例:GeoJSON, GDAL, GEOS geometry library, Boost.Geometry, ほか大多数)(なお単位は大多数が degree)
(2) (三角関数($\lambda$)、三角関数($\phi$))など2 : (例:S2 Geometry Library)
(3) ($\lambda$、三角関数($\phi$)): (例は皆無?)

上記の三角関数の具体的候補例は下記のようなものも考えられます:

・ 三角関数($\lambda$) は、 $\tan \frac{\lambda}{4}$ など
・ 三角関数($\phi$) は、 $\tan \frac{\phi}{2}$ (= Braun投影)など

なお、長距離に関わる処理計算には確かに((1)のように) $\phi$ が必要になる場合がありますが、そうでなければ必要なのは $d\phi$, $\cos \phi$ だけです(もしくは十分な近似精度が得られる)。したがって((2)のように)初めから三角関数($\phi$) を内部表現とした方が、三角関数・逆三角関数を実行するオーバーヘッドが節約されます。

また web メルカトル投影(タイル地図生成など)については (3) が有利と言えます(下記の計算となります)。

\begin{align}
\frac{x}{R} &= \lambda \\
\frac{y}{R} &=  \operatorname{gd}^{-1} \varphi = 2 \operatorname{arctanh} \left( \tan \frac{\phi}{2} \right)
\end{align}

  1. 今回、右手系/左手系の差異は無視しています。 

  2. もしくは三次元表現 ($\cos{\phi}\cos{\lambda}$, $\cos{\phi}\sin{\lambda}$, $\sin{\phi}$)