ジオタグ写真をGoogle Earthに追加する方法

Google Earthは写真の中にあるGPS座標を読みません。ジオタグ付きのJPEGをドラッグしても何も起きません。そのファイルに収まっている位置情報は、アプリケーションからは見えないからです。ジオタグ付きの写真をGoogle Earthに追加するには、まずKMLに変換します。Google Earthが実際に読む形式で、座標を写真の内部ではなく写真と並べて持つ形式です。
この一点が、ここで起きるほとんどの問題を説明します。写真が付かないまま現れるピンも、動こうとしないタイムラインもそうです。以下の手順では、まず変換を扱い、続いてその後に起きる三つのつまずきを扱います。
Google Earthが写真から実際に読むもの
何もありません。読むのはKMLとその圧縮形式であるKMZだけで、一覧はそれで終わりです。最も明確な証拠はGoogle自身のチュートリアルです。そこでは写真を開くのではなく、まず画像から座標を取り出すスクリプトを使ってジオタグ付き写真をKMLへ変換する手順が説明されています。
その座標は写真のEXIFブロックにあり、何かを変換する前に知っておく価値のある形で保存されています。緯度と経度は常に正の数として書かれます。赤道のどちら側か、本初子午線のどちら側かは別に保持され、一文字の参照フィールドに入ります。緯度なら N か S、経度なら E か W です。
変換でこの一文字を失うと、数値は無傷のまま残り、ピンだけが反対の半球に落ちます。これが「写真が海の上にある」という現象の典型です。まとめて変換する前に、そもそも変換するものがあるのかを知るためにそのファイルが何を持っているかを確認してください。
ジオタグ付き写真をGoogle Earthに追加する方法
順番に五つの手順です。手順二は、まだ位置情報がない写真だけに当てはまります。
- フォルダ全体を変換する前に、写真を一枚開いて緯度と経度があることを確かめます。
- 座標のない写真については、まず写真に座標を書き込みます。
- 各写真のGPSブロックを読む変換ツールを使って、フォルダをKMZに変換します。
- KMZをダブルクリックして、あるいはFileからOpenを選んでGoogle Earthで開きます。
- 読み込んだレイヤをMy Placesへドラッグして、再起動後も残るようにします。
デスクトップ版もウェブ版のGoogle Earthも、KMLとKMZの両方を開けます。KMZは読み込まれるのに写真が表示されない場合、原因はほぼ必ず次の節にあります。
KMZファイルの中身は実際には何か
KMZはごく普通のZIPアーカイブです。Googleのドキュメントはこれを主となるKMLファイルと付随ファイルをZipユーティリティでまとめたものと説明しており、自分でも確かめられます。ファイルを複製し、拡張子を .zip に変えて開いてみてください。
中には最上位に一つだけKMLファイルがあり、慣例として doc.kml という名前で、そのほかに写真を収めたサブフォルダがあります。KMLはあなたの写真そのものを含みません。含むのは座標と、各画像を指すパスです。そしてGoogleの案内では、そのパスはアーカイブの基準フォルダからの相対パスに保つこととされています。
ここから二つの規則が導かれ、どちらを破っても症状は同じです。画像が壊れたアイコンとともに開くピンになります。
- 書き出したあとで写真の名前を変えないこと。 KMLは古いファイル名を指したままで、警告は何も出ません。
- すべてを一段深いフォルダに入れた形で再圧縮しないこと。 すべての相対パスの起点がずれてしまいます。
二つの書き出しを統合しようとする人がはまる規則がもう一つあります。Googleのドキュメントによれば、アーカイブ内のKMLファイルは一つだけで、Google Earthは最初に見つけたものを使い、その後のものは無視します。二つのKMZを統合すると、ピンは半分になり、エラーメッセージは出ません。
写真が地面に張り付いてしまう理由
高度が記録された写真でも地形の上に平らに現れがちですが、それは不具合ではなく初期値です。KMLは高度モードによって高さを制御し、その既定値は clampToGround です。KMLリファレンスはこれを、高度の指定を無視して対象を地形に沿わせるようGoogle Earthに指示するものと定義しています。記録された高さは読み取られ、そのうえで捨てられます。
もう一方の absolute は、真下の地形の実際の標高にかかわらず、対象を海面を基準に配置します。それが解決策のように聞こえますし、海抜ゼロ付近で撮った写真なら実際にそうです。標高の高い町で撮った写真ではそうでないことが多くなります。ファイル内の高さは海面からの値であり、Google Earthの地面はそれ自身の地形モデルから来るため、ピンは風景の上に浮かぶどころか地中に埋まってしまうことがあります。
Google自身のチュートリアルは、この話を大半において机上のものにする注意を添えています。多くの機器は高度をまったく記録せず、単に0を設定します。変換で何かが失われたと決めつける前に、ファイルを一つ確かめてください。
一連の写真をタイムラインにする
これこそこの作業全体を価値あるものにする機能であり、多くの変換が何も言わないまま提供し損ねる機能でもあります。Googleのドキュメントは明確です。時間要素を持つフィーチャを含むKMLファイルをGoogle Earthが開くと、タイムスライダが表示されます。それをドラッグすると写真が撮影順に現れ、静止したピンの集まりが再生できる旅程に変わります。
これがうまくいかないのは、写真の日付とKMLが求める日付が、互いに相容れない書式で書かれているからです。
| どこにあるか | どう書かれるか |
|---|---|
| 写真の中、撮影日時として | 2005:10:12 16:05:56 |
| Google Earthが読むKMLの中 | 2007-01-14T21:05:02Z |
写真は日付の各部分をコロンで区切り、タイムゾーンを持ちません。KMLはハイフンと、日付と時刻の間に置く T、そしてゾーンの記号を求めます。写真の日付を書き換えずにそのまま写す変換ツールは、Google Earthが問題なく読み込むのにスライダには決して載せないファイルを作ります。エラーは出ず、ただタイムラインがないだけです。ピンにスライダがないなら、まずここを確認してください。
ピンが教えてくれないこと
Googleのチュートリアルは、読み飛ばしやすく、覚えておく価値のある注意で締めくくられています。カメラ内蔵のGPS受信機は常に正確とは限りません。多くの機器は高度を記録しません。そしてファイル内の座標が示すのはカメラが立っていた場所であって、カメラが向いていた対象ではありません。十キロ離れて撮った山の写真は、山頂ではなく谷にピンを打ちます。
関連する欠落は方位です。素の位置情報はレンズがどちらを向いていたかを何も語らないため、同じ地点から反対方向へ撮った二枚は、地図上のピンになった時点で区別がつきません。座標と並べてコンパス方位を記録するカメラもありますが、普通のフォルダにある携帯電話の写真の多くは記録していません。
そのどれも地図を誤りにするわけではありませんが、地図が何を証明できるかの限界を定めます。ピンの束を信用する前にファイルが実際に何を保存しているのかを理解したいなら、位置情報が写真の中にどう保存されるかが基礎となるタグを扱っています。また、どの画像からでも座標を取り出して、ピンが落ちた場所と照らし合わせることができます。



