3

私は現在、地図とその地図内の現在の GPS 位置を表示できる小さな (Java) ソフトウェアを開発しています。私はこれにまったく慣れていませんが、ある種の座標変換を行う必要があることは明らかです。「Proj4J」を見つけました。これは、私にとって多くのことができるようです。今、私が持っているものと私がやりたいこと:

  1. マップのビットマップがあります。この地図の投影法は、ランベルトやメルカトルのような「明確に定義された」投影法にすることができます。これを 1 つの投影に固定することはできません。
  2. 「標準」の GPS 受信機から GPS 座標を取得しています。WGS84 では緯度/経度だと思いますが、正しいですか?

ここで私の質問: GPS 位置を基本的にマップ ビットマップの「画面座標」にマップする必要があります。そのためには、緯度/経度と対応するピクセル位置を知っている参照ポイントが必要だと思います。私の地図は数百キロメートルの範囲を簡単にカバーできるので、既知の点と任意の位置との間の線形補間は、すべてのタイプの投影に対しておそらく正しくありません。これまでに「特定の画像で long/lat をピクセル x/y に変換する」を読みましたが、これはメルカトル図法を扱っており、ランベルト マップよりも線形近似の方がうまく機能すると思います。全体のプロセスは次のようになると思います。

  1. マップを「調整」します。つまり、ビットマップ内の既知の緯度/経度の 2 つの位置を識別し、それらのピクセル位置を取得します。
  2. 「緯度/経度 WGS84」から「地図投影」への Proj.4 変換を使用して、(1.) からの参照点を地図座標にマッピングします。
  3. (2.) からポイントを取得し、それらをピクセル位置の線形補間を可能にする投影に再度マップします。これを「ピクセル投影」と呼びます。
  4. これで、「ピクセル投影」の座標とそれに対応するピクセル位置を持つ 2 つの基準点ができました。

GPS 受信機からの緯度/経度値については、次の手順を実行します。

  1. 「地図投影」を使用して、位置を地図の位置に変換します。
  2. (1.) から地図の位置を取得し、上からの「ピクセル投影」を使用して座標に変換します。
  3. 「ピクセル投影」のすべての距離が維持されるため (これがピクセル投影の条件です!)、上からの基準点の既知の位置を使用して (2.) から得られる座標を補間することができます。

ここに大きな質問があります:

  1. これは、最終的な「ピクセル投影」を使用して線形補間を可能にする方法ですか?
  2. それはどのタイプのプロジェクションで、Proj.4 で実行できますか?
  3. 「戻る」ことはできますか-ピクセル位置があり、緯度/経度を達成したい(「ピクセル位置」->「ピクセル投影」->「地図投影」->「緯度/経度」のように)?

ありがとう、イェンス。

4

0 に答える 0