読者です 読者をやめる 読者になる 読者になる

QGISで特定の地物をクリックすると画像が開くようにする方法

QGISオープンソースGISソフトとしてたいへん便利ですが、ときどき思い通りに操作できないことがあります。今回もかなり苦労しました。トライしたのは、特定の地物をクリックして画像を開くという操作です。たとえば、GPS付きのカメラで撮影した画像を地図とリンクさせられたら、とても便利です。またまた苦労を重ね、最後はコンピュータに詳しい同僚の助けをもらって次の方法にたどりつきました。

1)画像からGPS情報を抽出する。

まず、GPS情報を持っている写真の情報(EXIF)を一括して閲覧したり、エクスポートしたいと思いました。枚数が少なければ手入力でもよいですが面倒ですね。これにはExif情報を抽出するフリーウェアを利用しました。リンクを掲載してよいかどうか不明でしたのでここでは名前は伏せます。私のカメラ(Canon PowershotD30)では緯度経度が「・・度・・分・・秒」となっていたのでこれをExcel上のワークシート関数で変換しました。たとえばC2に上記の緯度がある場合、次の関数で小数点に変換できました。

=LEFT(C2,FIND("度",C2)-1)+(MID(C2,FIND("度",C2)+1,FIND("分",C2)-FIND("度",C2)-1))/60+(MID(C2,FIND("分",C2)+1,LEN(C2)-FIND("分",C2)-2))/3600

今回はヨーロッパの写真が対象で、東経と西経の両方が登場しました。区別はそれぞれプラス、マイナスとしておけば大丈夫でした。これをCSVファイルにして、QGIS(今回は2.12.0を使用。PCはwindows7です)から読み込みます。いつもどおりセルやファイル名に日本語を含めないのが無難です。このCSVファイルに画像の場所を指定する列も加えておきます(列の一部はこちらの都合で隠しています)。

f:id:darusmart:20151120174123p:plain

 

QGISからのCSVファイル読み込みは「レイヤ>ベクタレイヤの追加>デリミティッドテキストレイヤの追加」です。

2)QGISのアクションとバッチファイルを利用して地物と画像のリンクをつくる。

QGISにはプロパティ(レイヤーを選択してダブルクリックすると開くメニューの中にある)を開くと、”アクション”というタブがあります。このアクションを利用すると地物と特定の動作を結びつけることができます。ところが少しクセがあるようで、いくつかのウェブサイトに書かれていた方法ではうまくいきませんでした。同じように困った方は次を試してください。

(1)バッチファイルをつくる。

次のようにテキスト入力したファイルに名前をつけて、拡張子をbatとして保存します。フォルダはプロジェクトと同じところに入れておくのが無難です。

f:id:darusmart:20151120185118p:plain

(2)アクションを次のように設定する。

下のほうにある欄で設定をします。”タイプ”は一般、”名前”は表示のためだけなので日本語でも大丈夫です。アクションのところにはさきほど指定したバッチファイルの場所を入力します。そのあとスペースをはさんで画像の場所を記入したカラムを示します。アクションの欄の下にあるポップアップで選んでから”フィールドを挿入”とします。最後に忘れず”アクションリストへ追加”をクリックします。

 

f:id:darusmart:20151120190456p:plain

上記によってアクションリストに下記が加わりました。OKを押して通常の画面に戻ると、下図で地物アクションの実行というアイコンのポップアップに上記アクションが追加されるはずです。ここでアクションを選んだら、あとはそれぞれの地物をクリックすると画像が開くはずです。(OSMをベースマップにしています。)

f:id:darusmart:20151120191357p:plain

バッチファイルを使わなくてもできるようですが、私は今のところうまくいっていません。画像を開くとき、一瞬バッチファイルが開くのがうっとおしいかもしれませんが、とりあえず目標は達成しました。