座標系間の座標変換

座標系を定義すると、いくつかの方法で座標系の変換を実行できます。これは、パッケージ ilog.views.maps.srs.coordtrans に定義されている座標変換で行われます。

座標変換の概要

異なる座標系やデータで作業を行う場合、座標系を相互に変換する必要がでてきます。座標系を処理する場合、このような変換は関数を使用して行います。
座標変換 (ilog.views.maps.srs.coordtrans. IlvCoordinateTransformation クラスで定義) には、次の座標系や変換を操作するための情報が含まれています。
  • ソース座標系
  • ターゲット座標系
  • 座標系間で座標を変換する数学変換
さらに、すべての座標変換は以下のメソッドを実装します。
  • IlvCoordinate transform
    これは基本的なメソッドです。resultnull の場合、ソース座標を変換して、その結果を result、または新たに割り振られた座標に格納します。このメソッドでは、変換後のポイントを返します。
  • IlvCoordinate[] transform
    これは、上記のメソッドのベクトル版です。このため、座標全体の変換が可能になり、場合によってはいくらかの最適化も行えます。
  • オプションとして、逆変換を返す getInverse メソッドを実装することもできます。
以下のセクションでは、JViews Maps で提供されている定義済みの組み込み変換について説明し、変換パッケージの例についても紹介します。

変換パス

座標をある座標系から他の座標系に変換するには、数学関数が必要です。これらの数学関数は、単純な関数になる場合も、複雑な変換になる場合もあります。JViews Maps パッケージには、ilog.views.maps.srs.coordtrans パッケージで利用できる座標変換用の基本変換 (または、変換手順) のほとんどが含まれています。
ある座標系から他の座標系への一連の基本変換を、変換パスと呼びます。
クラス IlvCoordinateTransformation の静的メソッド CreateTransformation では、ilog.views.maps.srs.coordsys パッケージの座標系から変換パスを自動的に作成できます。作成された変換パスの探索方法については、次の図を参照してください。
CT_path.gif
変換パス

以下の投影座標系から変換します。
  • 投影図法: ランベルト正角円錐図法
  • 測地基準: NTF (Nouvelle Triangulation de la France)
  • IGN が修正を加えた Clark 1880 楕円体に基づいて関連付けられた地理座標系
以下の座標系に変換します。
  • 投影図法: メルカトル図法
  • 測地基準: European 1960
  • 関連付けられている地理座標系: International。
CreateTransformation() が選択する変換パスは、次のようになります。
  1. ランベルトから地理 NTF/Clark1880 への投影変換
  2. NTF/Clark1880 から European 1960/International システムへの Molodensky 変換
  3. 地理 European 1960/International からメルカトルへの投影変換
ステップごとに、アフィン変換を使用して、該当単位変換が追加されます。
このパスは既存の唯一のパスではありません。また、地理座標から地心座標に変換することもできます。この場合、変換パスは次のようになります。
  1. ランベルトから地理 NTF/Clark1880 への投影変換
  2. 地心 NTF 座標への地心変換
  3. NTF から European 1960 座標に変換するアフィン変換
  4. European 1960 から地理座標への地心変換
  5. 地理 European 1960/International からメルカトルへの投影変換