座標系を定義すると、いくつかの方法で座標系の変換を実行できます。これは、パッケージ ilog.views.maps.srs.coordtrans に定義されている座標変換で行われます。
座標変換の概要
異なる座標系やデータで作業を行う場合、座標系を相互に変換する必要がでてきます。座標系を処理する場合、このような変換は関数を使用して行います。
座標変換 (ilog.views.maps.srs.coordtrans. IlvCoordinateTransformation クラスで定義) には、次の座標系や変換を操作するための情報が含まれています。
- ソース座標系
- ターゲット座標系
- 座標系間で座標を変換する数学変換
さらに、すべての座標変換は以下のメソッドを実装します。
IlvCoordinate
transformこれは基本的なメソッドです。result
がnull
の場合、ソース座標を変換して、その結果をresult
、または新たに割り振られた座標に格納します。このメソッドでは、変換後のポイントを返します。- IlvCoordinate[] transformこれは、上記のメソッドのベクトル版です。このため、座標全体の変換が可能になり、場合によってはいくらかの最適化も行えます。
- オプションとして、逆変換を返す getInverse メソッドを実装することもできます。
以下のセクションでは、JViews Maps で提供されている定義済みの組み込み変換について説明し、変換パッケージの例についても紹介します。
変換パス
座標をある座標系から他の座標系に変換するには、数学関数が必要です。これらの数学関数は、単純な関数になる場合も、複雑な変換になる場合もあります。JViews Maps パッケージには、ilog.views.maps.srs.coordtrans パッケージで利用できる座標変換用の基本変換 (または、変換手順) のほとんどが含まれています。
ある座標系から他の座標系への一連の基本変換を、変換パスと呼びます。
クラス
IlvCoordinateTransformation
の静的メソッド CreateTransformation では、ilog.views.maps.srs.coordsys パッケージの座標系から変換パスを自動的に作成できます。作成された変換パスの探索方法については、次の図を参照してください。![CT_path.gif](../usrprgmaps/_media/CT_path_default.gif)
変換パス
例
以下の投影座標系から変換します。
- 投影図法: ランベルト正角円錐図法
- 測地基準: NTF (Nouvelle Triangulation de la France)
- IGN が修正を加えた Clark 1880 楕円体に基づいて関連付けられた地理座標系
以下の座標系に変換します。
- 投影図法: メルカトル図法
- 測地基準: European 1960
- 関連付けられている地理座標系: International。
CreateTransformation()
が選択する変換パスは、次のようになります。- ランベルトから地理 NTF/Clark1880 への投影変換
- NTF/Clark1880 から European 1960/International システムへの Molodensky 変換
- 地理 European 1960/International からメルカトルへの投影変換
ステップごとに、アフィン変換を使用して、該当単位変換が追加されます。
このパスは既存の唯一のパスではありません。また、地理座標から地心座標に変換することもできます。この場合、変換パスは次のようになります。
- ランベルトから地理 NTF/Clark1880 への投影変換
- 地心 NTF 座標への地心変換
- NTF から European 1960 座標に変換するアフィン変換
- European 1960 から地理座標への地心変換
- 地理 European 1960/International からメルカトルへの投影変換