Google Earthから画像を取得しよう
Google Earth Proでパノラマ風景を作ろうと思ったとき、視点を固定してパン方向に何枚か画像を取り出して、それらをマージしてあげればいいというのが基本的な考え方になりますか。
Google Earth ProのナビゲーションではCommandキーを押しながらのドラッグで視点中心でカメラを回すことができるので、それで頑張るといいわけです。けど、オペレーションミスると位置がちょっとずれて台無しにってことになりかねないから、なんとか数値入力でできないものかと思うわけですね。
AppleScriptでそれができるかなって思ったのだけど、AppleScriptのSetViewInfoで設定できる視点位置は、動作としてはまず指定した経緯度と(地面からの)高さに視点を移動させます。このとき視点は真下を向いています。次に指定した方位にカメラをロールさせて、最後に指定したチルトの角度分だけ視点が見ていた地面を中心に回転します。つまり、経緯度で指定した場所の上空にカメラを設定ってのが大変に困難です。その上水平方向を見るようにすると(チルトを90度にすると)ほぼ地面って高さに降りちゃうわけですね。
ということでAppleScriptでは無理と悟りました。
Google Earthでは任意の位置と視点の向きを記録させることができますけど、その機能を利用し、視点位置は固定で見ている方向違いをいくつか記録しましょうと考えました。
KMLを書くことになります。
KMLでは視点をLookAtタグかCameraタグで指定するそうです。AppleScriptで示した挙動はLookAtを使った場合に一致します。それじゃダメなのでCameraを使います。
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>富士山</name> <open>1</open> <Placemark> <name>Angle 1</name> <Camera> <longitude>138.731065 </longitude> <latitude> 35.362260 </latitude> <altitude>3790</altitude> <heading>0.0</heading> <tilt>90</tilt> <altitudeMode>absolute</altitudeMode> </Camera> </Placemark> <Placemark> <name>Angle 2</name> <Camera> <longitude>138.731065 </longitude> <latitude> 35.362260 </latitude> <altitude> 3790 </altitude> <heading>45.0</heading> <tilt>90</tilt> <altitudeMode>absolute</altitudeMode> </Camera> </Placemark> (省略) </Document> </kml>
上のようにPlacemarkタグで囲んだCameraの情報を書いてあげました。上の例は全てのPlacemarkの中は同じ富士山山頂の経緯度と高度を指定し、違うのはheadingタグの中身だけとなってます。45度ずつカメラを回転させて風景を撮影したのを後で繋ぎましょう作戦です。
上記kmlをGoogle Earth Proに読み込むと下図のようになります。
で、Angle 1〜8を順番にダブルクリックしてそれぞれに角度の絵を保存するという作業を繰り返します。ネットワークが遅いと絵が表示され切るまでに時間がかかるし、地道な作業です。
Photoshopのフォトマージの円筒法で合成するとこんな感じになるため、適当にトリミングしてシリンダーに貼り付けて完成です(左右方向はループするようにきちんとトリミングする必要があります)。
これぐらいならKMLは手書きでいいけど面倒すなあ。なんとか自動化できんものか(と言いつつこの作業の頻度は著しく少ないので、必要な時に手動でいいや、となります)
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |