2016-09-12 37 views
0

まずは、これが適切な場所であるかどうかわからないので、これが他の所属の場合は謝罪します。私は現在、VBでこれを使ってプロトタイプを作成していますので、まずはここに来ています。地図上の緯度/経度座標をプリセット座標に換算する

私の目標

私はプレーのビデオゲームのために異なる種類の情報を記録することができるようにするプログラムを作成しようとしています。私はなど、私のプログラムとゲーム全体をマップし、暴徒、リソースのための場所を追加できるようにしたいと思い

私は

は、ザ・ゲームマップに私は文字通り持っているので、ダウンロードすることができます持ってどのようなこれをフォームの背景画像として貼り付けます(今のところ)。私がダウンロードしたマップは、地図がゲームに表示されたときとまったく同じではありませんが、ゲームがスクロールするときに余分な水を追加するためです。これは、地図の原点がダウンロードされた地図上のどこにあるかと比較してゲーム内でどこにマッチするのが少し面倒です。

私はゲーム中に自分の現在の座標を画面に印刷することができます。だから、どういうわけかこれを使って、マップ上の残りのポイントの正しい計算を得ることができると思いました。ここで

は、私は今を参照する例の画像です:上記のマップではExample Map

あなたが点線のバウンディングボックスが表示されます。これは、ゲーム内の目に見えないボックスです。マウスを経度から移動させて、緯度ポイントが表示されなくなります。これは、私がゲームマップの原点を正確に見つけることができないということを意味するとき、私が上で参照したものです。

また、2点:AとBが表示されます。ゲームにはテレポーターがあります。これは私が可能な最も正確な位置を得るために使用するものです。私はポイントAとポイントBの位置を(ゲームで)見つけることができ、VBで私のマウスドラッグイベントの変換に何とかそれを計算すると思っています。

VBでは、画面は左上から開始され、0,0です。私はすでにこのような2点を得ようとしましたが、その数をマウスのxとyのピクセル位置に加算または減算するだけでしたが、それは正しく整列しませんでした。

このような情報に基づいて、この種のデータに基づいて画素にlon/lat変換を書き込むことができるかどうかは誰にでも分かりますか?

ご意見やご提案をいただき、ありがとうございました。私が投稿した情報の明確化が必要な場合は、私に知らせてください。私は本当にこれを解決できることを望んでいます!

ありがとうございます!

EDIT:

私も、私はゲームマップの/経度のポイントをLATする正確なピクセルがあるかどうかわからない言及したいと思います。私。ゲーム内の地図は1ピクセル= 100緯度か何かである可能性があります。だから私はまた、そのコンバージョン数が何であるか把握する必要がありますか?

+0

マップのサイズはゲームと同じですか?はいの場合、ゲームのポイントAが123,123であるとし、それをVBで0,0と固定し、ポイントA(123,123)に関連する緯度/経度、すなわちポイントB(223,223)は、 (100、100)VB – Prisoner

+0

ああ、それを指定しておくべきです。地図のサイズは異なっていません。しかし、あなたのアイデアを忘れて、どのようにポイントを特定の値に固定するか、または可能であればvbでウィンドウの原点をどのように変更できますか? –

+0

これは、サイズの代わりに縮尺でなければなりません... btw、ポイントAとポイントBをあなたの地図に固定しようとしましたが、 – Prisoner

答えて

0

ピクセル位置と「緯度と経度」との間の変換に関するいくつかの明確化。

最初にゲーム内のマップはジオメトリ座標系にあります。つまり、すべてが2Dにあり、ピクセル位置を計算することで2点間の距離を測定できます。

しかし、私たちは経度と緯度について話すとき、実際に地球の表面上にある球体の「3D」モデルである地理座標系について話しています。地球上のすべての地図は、投影と呼ばれる1つのステップで3Dから2Dに抽象化されます。 GoogleマップやGPSなど。この投影処理では、2Dモデルに変換された3Dモデルは常にマップの一部である3Dモデルが拷問されるため、マップ上のピクセル単位で同じ距離が実際には異なることがあります。

したがって、精度について気にしなければ、ジオメトリポイントを地理的ポイントと見なすことができます。それ以外の場合は、測地線の距離を処理し、投影座標系に基づいて地理座標を計算するために、いくつかのGISライブラリを実装する必要があります。

関連する問題