君はもうTileLayerPluginを体験したか−QGISで電子国土基本図(地理院地図)・その2
QGISでWeb地図(タイル地図)を表示するには幾つか方法があるが、OpenLayersプラグインかWMSミニドライバ*1の使用が一般的だろう。
特にOpenLayersプラグインはQGISオフィシャルプラグインリポジトリからインストール出来、Google Maps等の代表的なWeb地図をすぐ使えて大変便利である。地理院地図はプリセットされてないが、id:vec2ras:20120731:1343661021で記したように追加作業は簡単である。
そして2013年12月、Web地図を表示する新しいプラグインがオフィシャルリポジトリに登録された。タイルレイヤプラグイン(TileLayerPlugin)である。作者は数々のかゆい所に手が届くツールを公開されてきた三匹のウリボウさん。これもまたかゆい所に手が届く素晴しい出来なのである。
http://space.geocities.jp/bischofia_vb/qgis-plugins/TileLayerPlugin/
プラグインの使用には別途地図タイルを定義したテキストファイルが必要となるが、地理院地図の定義ファイルが作者から提供されている。
https://gist.github.com/minorua/7654132
使い方は簡単で、プラグインをインストール、定義ファイルを保存したディレクトリを指定するだけで、直ちに地理院地図がQGISに表示される。インストール時に自動的に作成される"layers"というディレクトリに定義ファイルを保存する場合、ディレクトリ指定はしなくてもよいようだ。自分のWindows7環境では次のようになっている。
C:\Users\vec2ras\.qgis2\python\plugins\TileLayerPlugin\layers
ちなみにOpenStreetMapは次のような定義ファイルになる。#はコメント行、セパレータはタブのTSVファイル。他の地図タイルも表示可能と思われるが、利用前に提供元の利用規約を参照するべきである*2。
# OpenStreetMap.TSV # title credit serviceUrl yOriginTop zmin zmax xmin ymin xmax ymax OpenStreetMap OpenStreetMap http://tile.openstreetmap.org/{z}/{x}/{y}.png 1 0 20 -180 -85.05 180 85.05
地図タイルは通常ネットから取得するため表示待ちが必ず発生するが、このときタイル取得状況を表示する「ナビゲーションメッセージ」がとても役に立つ。ダウンロードするタイル数やキャッシュヒット数、取得失敗等が表示され、また「電子国土基本図(オルソ画像)」等ズームレベルが限定される場合、範囲外のズームレベルではその旨ステータスでお知らせしてくれる。分かりやすい。
さらにレイヤプロパティの「スタイル」で透過度やレイヤ重ね合わせ時の混合モードを指定できる*3。これはOpenLayersプラグインには無い機能。素晴しい。
またプラグインには"XYZFrame"と"TMSFrame"が付属しているが、スクリプトでズームレベルやタイル番号、タイル範囲を描画するレイヤで、地図タイル製作者にとって非常に便利である。またローカルにある地図タイルも表示できるようだ。
とにかく素晴しい出来なので、QGISユーザは一度使ってみて欲しい。絶対に「あー、これだよこれ!」と思うよ。
もう作者の方には大感謝である。
*2:Google MapsはOpenLayersプラグインで利用規約上問題無く使えるので素直にOpenLayersプラグインから使えばよい
*3:2013年12月現在、自分の環境では混合モードが上手く動作しなかった?