日々適当

hibitekitou

Google Earthから画像を取得しよう

cg |2024-10-04

Google Earth Proでパノラマ風景を作ろうと思ったとき、視点を固定してそこでパン方向に何枚か画像を取り出して、それをマージしてあげればいいというのが基本的な考え方になりますか。
Google Earth ProのナビゲーションではCommandキーを押しながらのドラッグで視点中心で回すことができるので、それで手動で頑張るといいわけです。けど、オペレーションミスると位置がちょっとずれて台無しにってことになりかねないから、なんとか数値入力でできないものかと思うわけですね。

Apple Scriptでそれができるかなって思ったのだけど、AppleScriptのSetViewInfoで指定できる視点位置は、動作としてはまず指定した緯度経度(地面からの)高さに視点を移動させます。このとき視点は真下を向いています。次に指定した方位にカメラをロールさせて、最後に指定したチルトの角度分だけ視点が見ていた地面を中心に回転します。つまり、最終的には目的とした位置にいないし、水平方向を見るようにすると(チルトを90度にすると)ほぼ地面って高さに降りちゃうわけですね。
ということでApple Scriptでは無理と悟りました。

ということで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を順番にダブルクリックしてそれぞれに角度の絵にしてからそれを保存するという作業を繰り返します。地道な作業です。

Photomergeの円筒方で合成するとこんな感じになるため、適当にトリミングして円筒に貼り付けて完成です。

まあこれぐらいならKMLは手書きでいいとして、画像を取得するのに時間がかかりますなぁ。

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。