QGISで位置情報付きの写真を加工してみる

はじめに

iPhoneで位置情報付きの写真撮っているけど生かせずもったいないなーと思っていました。
なので今回はQGISを使ってフォトアルバム風の画像を作ってみようと思います。

完成品はこんな感じです。 f:id:hitsujisuke:20171011225319p:plain

概要

完成品のような画像を作成するアプリ等も存在します。ここではもう少し自分でレイアウトをいじりたい人のためにQGISというソフトを用いた方法を紹介しています。
QGISというソフト自体をご存じない方やインストールしてみようという方は公式サイトから落としていただければと思います。

以下からはQGISをインストールした前提で話を進めます。

必要なもの

写真

位置情報を記録した写真を用意します。
今回は以前遊びに行ったしまなみ海道にてiPhoneで撮影した写真を用います。 こちらのように位置情報が記録されていますね。 f:id:hitsujisuke:20171015113002p:plain

画像からポイントデータを作成する

Photo2Shapeというプラグインを用います。
少々導入がややこしいですが、以下の記事を参考にさせていただきました。

QGISのPhoto2Shapeプラグインのエラー対処法: 森林土木memo

プラグインをインストールする前に公式サイトから落としたファイルを指定されたフォルダに入れておかなければ、プラグインがクラッシュした状態になるようです。

プラグインが無事起動したら
1. Photo2Shapeのアイコンをクリックし
2. ウインドウ上の"Directory with image"で写真の格納されたフォルダを指定、"Output shapefile"でポイントを出力するフォルダを指定してOK f:id:hitsujisuke:20171015113035p:plain

プラグインを実行すると以下のようなポイントが追加されます。 f:id:hitsujisuke:20171015113059p:plain

OpenLayers pluginの実行

Web>OpenLayers pluginから任意の地図を選択すると画面に地図が描画されます。今回はGoogleストリートマップを使用させていただきました。
インターネットに接続されていないと描画されないのでご注意ください。 f:id:hitsujisuke:20171015113123p:plain

画像の変換

写真を挿入して前に画像をsvg形式のものに変換する必要があります。
変換方法は色々ありますが私はInkscapeを使いました。このソフトならフリーですし簡単に変換作業ができます(GIMP2だとややこしかった…)。
他にもWeb上にある変換サービスなどもありますが容量制限やらカラーでなく白黒写真に変換されるなどいいものがありませんでした。良いものがあれば教えていただければと思います。

Inkscapeでの作業ですが、今回使うのは"画像の読み込み"と"形式を指定して保存"、縦写真の場合に"ドキュメントプロパティ"を使うくらいなので簡単です。 f:id:hitsujisuke:20171015113156p:plain

画像の描写

Inkscapeを用いてsvg形式の画像データに変換できればもう完成は目前です。
次はSVG注記機能を使っていきます。 f:id:hitsujisuke:20171015113228p:plain

そして
1. 吹き出しの元となるポイントをクリック
2. 吹き出し内をダブルクリック
3. 写真を指定
4. ポイントマーカーを透過表示に(任意)
f:id:hitsujisuke:20171015113302p:plain

はい、一つ目の写真付きの吹き出しが完成しました。
f:id:hitsujisuke:20171015113333p:plain

あとはこの作業を他のポイントでも行ってください。
レイアウトを整えたのち、画像として保存すれば完成です。 f:id:hitsujisuke:20171015113456p:plain

終わりに

お疲れさまでした。
直感的に吹き出しを操作して自由かつ簡単に写真付きの地図を作ってみたいと思い、色々探ってみましたがこのような方法に落ち着きました。
もっといい方法があれば教えていただければ幸いです。
ありがとうございました。


ひつじ助
p.s.
(こういったサービス作ってみたい。)

おまけ

作業中、どの写真がどのポイントかわからなくなる場合があると思います。
そのような場合は 1. レイヤの右クリからプロパティを開いて
2. ラベルをクリック
3. ラベルなし→このレイヤのラベル表示
4. "filename"を指定 f:id:hitsujisuke:20171015113521p:plain これで作業しやすくなるかと思います。