2012-01-16 15 views
1

私は現在、VIDEO要素(サイズ512x288)の上にオーバーレイとして地理的なポイントを表示するのに役立つプロジェクトに携わっています。latlonポイントの相対位置

VIDEO要素にはライブブロードキャストが含まれています。また、JavaScript変数としてサイトに入力された方位、緯度、経度、高度のリアルタイムフィードがあります。

また、サイトに含まれるPOI(Points of Interest)の配列もあります。 POIさんは、次の形式である:

var points = [['Landmark name', 'latitude', 'longitude'], […]]; 

ごとに5秒程度、私はPOIの配列をループにしたい、そしてそれらのいずれかが、ビデオの現在のビューポート内にあるかどうかを確認する - とtrueの場合、それらをVIDEO要素の上にオーバーレイします。

誰かが私が何を見ているべきであるかについて正しい方向に向けることができますか?私は、ポイントを2D平面にマップする必要があると仮定します。メルカトル投影。

しかし、POIの相対的なピクセル位置をビデオにマッピングすると、少し失われます。

いくつかのヒントをお楽しみください!

答えて

1

これを行う前に、最も重要な要素は、垂直方向または水平方向のいずれかでカメラの視野を(少なくとも100度まで)正確に決定することです。次に、ビデオのアスペクト比(512/288 = 1.78)を使用して、atan式を使用して(必要に応じて)他の角度を決定します(垂直視野にアスペクト比を掛けて、水平視野は角度であり、アスペクト比は線形である)。あなたのカメラが現実世界にあることを除けば、例えばOpenGLでカメラを設定するという点で考えてみてください。視野とカメラの向きを選択する代わりに、測定する必要があります。

グラフィックスを適切にオーバーレイするには、カメラの姿勢(パン/チルトまたはピッチ/ロール/ヨー)を知る必要があります。

メルカトル図法は必要ありません。私は、カメラの視野が比較的小さい(すなわち、40度H程度)ので、通常は投影面が長方形であると仮定していると仮定しています(技術的には、球面からの小さなパッチです)。

関連する問題