(0,0,0) から始まる点のセットがあり、各点がそれぞれの次元で移動した距離である 3D で車両がたどった経路を表しています。私は2つのことをする必要があります
- (0,0,0) は緯度と経度を表します。3D の点のセットを緯度と経度に変換するにはどうすればよいですか?
- フレームごとに(ビデオに使用できるように遅延して)Googleマップ/地球などにプロットします
助言がありますか?
編集:プロットが実行可能になり、変換はDavidのおかげではありません
(0,0,0) から始まる点のセットがあり、各点がそれぞれの次元で移動した距離である 3D で車両がたどった経路を表しています。私は2つのことをする必要があります
助言がありますか?
編集:プロットが実行可能になり、変換はDavidのおかげではありません
Google Earth の場合、ここにすばらしい例があります。下にスクロールして、「例: パスに沿ったポイントの動きを表示する」までスクロールします。
Google Maps API の場合、この例はGoogle Maps Demo Galleryにありました。ちょっと大雑把ですが、何ができるかがわかります。
したがって、ある(任意の)座標系に開始点(0,0)があり、別の(地心)座標系に対応する(緯度、経度)点があります。問題は、原点からの既知の(x、y)オフセットのセットが与えられた場合、対応する(緯度、経度)ポイントをどのように見つけるかです。(これまでのところ、あなたの質問を理解していますか?)
簡単な答えは、次の式を使用することです。
lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ))
lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2))
d/R is the angular distance (in radians), where d is the distance travelled and R is the earth’s radius
このリンクから取得:http ://www.movable-type.co.uk/scripts/latlong.html
編集2:(ああ、言及するのを忘れました:この式は、デカルト座標(x、y)ではなく極座標(R、θ)があることを前提としています。しかし、それらの間の変換はそれほど難しくありません。)
少し長い答えは、これを十分な広さのスペースで行うと、高さの測定方法と地球の表面の形状が原因で、計算が非常に複雑になるということです。おそらく地理座標系について調べたいと思うでしょう。このウィキペディアの記事は良い出発点です。また、 PROJ.4ライブラリが役立つ場合もあります。
編集:
高さ(z)の測定値を考慮する必要がある場合、計算はさらに複雑になります。簡単な(より)解決策は、2.5次元の計算を行うことです。つまり、1セットの数式を使用して(x、y)座標を計算してから、(z)座標を個別に実行します。これは、作業しているスペースに対して地球の表面が平らであると基本的に想定しているため、十分に小さい領域でのみ機能します。ただし、アプリケーションにはこれで十分な場合があります。
JavaScript を使用して、ブラウザで Google マップ上を移動するポイントをアニメーション化するのは簡単です。ただし、どのようなビデオを取得しようとしているのかはわかりません。
Google マップには、マップ上にパスを描画してマップをレンダリングする API メソッドもあります。これについては、ページの下部で確認できます。