投影メソッドとパラメーター

forward メソッドと inverse メソッド

投影は、forward および inverse メソッドを使用して実装されます。
  • forward メソッドは、経度と緯度で指定された地点をデカルト座標に変換します。
  • inverse メソッドは、デカルト座標を緯度と経度に変換します。
これらのメソッドは、IlvProjectionException クラスから継承する次の 2 つの異なるタイプの例外をスローします。
  • IlvUnsupportedProjectionFeature 例外は、実装されていない機能が呼び出されるとスローされます。 次のアクションから発生します。
    • 非球形楕円体をサポートしていない投影で、非球形楕円体上で順方向投影を実行しようとする場合 (例: IlsEquidistantCylindricalProjection)。
    • 反転できない逆投影を実行しようとする場合。
  • The IlvToleranceConditionException 例外は、計算中にエラーが発生した場合にスローされます。
使用している投影図法にこれらの機能が実装されているかどうかを確認するには、 isEllipsoidEnabled メソッドおよび isInverseEnabled メソッドを使用します。

投影パラメーター

次のパラメーターを投影に設定することができます。
  • 地球の形状を指定する楕円体。
    楕円体の詳細は、「楕円体」を参照してください。
    各投影は、楕円体に関連付けられています。デフォルトでは、ほとんどの投影は楕円体 SPHERE を使用します。特定の投影のみ、例えばユニバーサル横メルカトル図法やユニバーサル極心平射図法などはデフォルトで非球体楕円体を使用します。
    特に縮尺の大きい地図には適切な楕円体を使用してさらに正確な投影を取得することができます。ただし、球体を使用するよりも計算が複雑になって時間もかかることに留意してください。
    投影に使用する楕円を指定するには、メソッド setEllipsoid を使用します。
    IlvProjection projection = new IlvMercatorProjection();
    projection.setEllipsoid(IlvEllipsoid.WGS84);
    
    一般的に使用される複数の楕円体を定義する IlvEllipsoid クラスの静的メンバーを使用するか、またはセクション「新しい楕円体の定義」で説明されているように独自の楕円体を作成することができます。セクション「定義済みの楕円体」で一覧表示されている定義済みの楕円体のいずれかを使用することもできます。
  • デカルト座標で使用する測定単位を指定する単位コンバーター。
  • 投影の中央子午線と中央緯線。
    これらのパラメーターは、 setLLCenter メソッドを使用して設定できます。投影は、その中心ではゆがみが少なくなります。
  • 偽の東距および偽の北距とも呼ばれる、デカルト座標に適用されるオフセット。これらのパラメーターは、 setXYOffset メソッドを使用して設定できます。オフセットは単位コンバーターと併用して、領域の投影座標の範囲を制御することができます。例えば、200 x 200 の寸法の四角に適合するように地域の範囲を設定できます。JViews Maps アプリケーションでは、データの範囲は問題ではありません。これは、トランスフォーマーを自動的に適用して IlvManager に含まれているすべてのグラフィックをウィンドウに収まるようにできるからです。したがって、偽の東距と偽の北距は主に投影をデカルト・オフセットを使用して既に投影されている地理データに適合するために使用されます。
次の処理も行うことができます。
  • setGeocentric メソッドを使用して、座標が測地座標 (デフォルト値) か地心座標かを指定。
    点の地心緯度は点を地球の中心とつなぐ線と赤道平面で形成される角度で定義され、点の測地 (または地理) 緯度はこの点を通る垂直線と赤道平面で形成される角度で定義されます。地球は正確には球体ではなく、どちらかというと楕円体のため、この 2 つの値は異なります。両方の緯度は tan phiG = (1 - e ^ 2) tan phi という計算式で関連付けられます。ここで e は地球の形状をモデル化するために使用する楕円体の偏心です。
mapsprg_datums8.gif
アプリケーションが地心データを処理する場合、このパラメーターを設定する必要があります。利用できるほとんどの地図作成データは、地理緯度で表現されています。
  • 投影図法で経度の縮小を使用するかどうかを指定します。つまり、経度を範囲 [-PI;PI] 内に収めるか、または任意の経度を受け入れるかを、次のメソッドを使用して指定します setUsingLongitudeReduction.
上記のパラメーターは、すべての投影図法に共通です。パッケージにあるすべての投影図法の基本クラスである IlvProjection の API を使用して設定することができます。投影図法によっては、特定の追加パラメーターがあることもあります。例えば、割線緯度は円錐投影で指定することができ、忠実な縮尺の緯度はほとんどの円筒投影で指定することができます。詳細情報については、各投影図法の API のマニュアルを参照してください。

投影ユーティリティー

IlvProjectionUtil クラスは、ラジアンから度への変換および度からラジアンへの変換を行う変換ユーティリティーを提供します。