3

3 つのコーナー (または任意の 3 つの位置合わせされていないポイント) の座標 (lat/lng) を知っているマップでは、マップ上にあるいくつかのポイントの座標 (lat/lng) があります。

私が欲しいのは、マップに対するポイントの相対座標 (左上隅を基準とした x/y) です。

他の変換 (x/y から lat/lng へ) にも興味があります。

私の地図は非常に小さい (10 km x 10 km 未満) ため、投影システムを使用する必要がありますか? または、表面が完全に平らであると仮定して線形変換を使用することはできますか?

編集:背景マップがどの投影を使用しているかわかりません(そして知る方法がありません)。3 つの地理参照ポイントを知っているだけです。

解決策は、線形変換を使用することです。

私の3つのポイントがA(xA、yA)、B(xB、yB)、C(xC、yC)、およびX(x、y)を配置したいポイントである場合。

私は計算することができa、緯度/経度の参照のbようにAX = aAB + bAC

x = xA + a * (xB-xA) + b * (xC - xA) y = yA + a * (yB-yA) + b * (yC - yA)

しかし、私は何かが欠けているように見えますか?

関連質問 :緯度/経度を歪んだ地図にマッピングする方法は?

4

3 に答える 3

0

マップにもよりますが、線形変換は単純です。Kavrayskiy 変換を使用することもできます。私は逆も見つけました: X と Y 座標から緯度と経度を取得します。メルカントール図法に関する質問があります:緯度/経度をピクセル座標に変換しますか? .

于 2014-03-10T16:03:10.110 に答える
0

あなたは正しいです、あなたは何かが欠けています。あなたの式(私は詳しく調べていません)は線形に見えるため、アフィン変換にのみ適用されるようです。マップは (一般に) (lat,lon) から (x,y) へのアフィン変換ではありません。

10x10 の正方形の点 (0,0)、(10,0)、(5,10) の座標がわかっている場合でも、物事がそれほど簡単であれば、変換を決定できますが、x 方向は距離や経度など (緯度、つまり y が変化した場合) を保存できますが、これらのケースを区別することはできません。追加情報を使用する必要があります。

于 2014-03-16T16:32:26.917 に答える
0

正確な変換を取得したい場合は、国/地域のローカル投影法を使用する必要があります。これらの座標は当てはまります。また、Google マップで座標の 1 つを検索することで簡単に特定できます (座標のセット全体が広大な領域に及ばないと仮定します)。それにより、座標がどの国/地域にあるかがわかります。そこから、その国で使用されているローカル投影システムを検索できます。また、ここでの目的が自分で変換アルゴリズム/ユーティリティを考え出すことでない限り、多くの投影システムとの間で座標を再投影するために必要なすべての計算を実装するいくつかのライブラリを利用できます。

proj4jmpl、これは proj4 の部分的な Java ポートです。

于 2014-03-15T17:02:10.147 に答える