QGIS (Quantum GIS)

オープンソースの地理情報システム (Geographic Information System : GIS) です。

導入

QGISのダウンロード

更新履歴はビジュアルチェンジログにあります。

地図の表示

Ver.3以降ならば、インストール後[QGIS Desktop *.*.*]のショートカットから起動し、[ブラウザ]にある[XYZ Tiles]の[OpenStreetMap]をキャンバスに追加することで、OpenStreetMapの地図を表示できます。

次のような方法で地理院地図も利用できます。

  • ブラウザの[XYZ Tiles]に新しい接続を作成し、そのURLを[https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png]とする。
  • ブラウザの[WMS]に新しい接続を作成し、そのURLを[http://gsi-cyberjapan.github.io/experimental_wmts/gsitiles_wmts.xml]とする。そして[標準地図]などのレイヤを選択する。

プラグイン

10. Module: Plugins

追加のプラグインはPlugin Managerからインストールできます。もし期待のプラグインをそこで見つけられないならば、QGIS Pluginsからダウンロードできます。そしてVer.3ならば、Plugin Managerの[ZIPからインストールする]からそれをインストールできます。

一方でVer.2までは、

  1. ダウンロードしたファイルを展開する。
  2. それをアプリケーションのインストール フォルダのapps\qgis-ltr\python\pluginsに配置する。
  3. QGISを起動する。すでに起動しているならば、再起動する。
  4. Plugin Managerの[インストール済]にそれが登録されているから、それを有効にする。
How to install a QGIS plugin when offline? - Geographic Information Systems Stack Exchange

TileLayerPlugin

TileLayer Plugin - QGIS Python Plugins Repository

※同様の機能はVer.2.18にはTile Server (XYZ)として、Ver.3にはXYZ Tilesとして標準で実装されています。ただしTile Server (XYZ)ではローカルのファイルを指定できないため、Ver.2でそのような用途に用いるならば、このTileLayerPluginを利用します。

まず、レイヤの定義ファイルを用意する必要があります。とりあえずサンプルがLayer definition files · minorua/TileLayerPlugin Wiki · GitHubにありますので、ここから.tsvファイルをダウンロードします。そしてメニューの【Web → タイルレイヤプラグイン → タイルレイヤを追加する】で開かれるウィンドウの[設定]をクリックし、[外部レイヤ定義ディレクトリ]でその.tsvファイルがあるディレクトリを指定します。そして[OK]で閉じると定義されているレイヤが表示されますので、そこから選択し[追加]することでそれが表示されます。QGISでTileLayerPluginを使って地理院地図を呼び出す - ymcity’s blog (2016/10/05)

レイヤの定義は次の書式で作成でき、

title attribution url yOriginTop zmin zmax xmin ymin xmax ymax

タイルの場所を示すurlは、file:///C:/samples/{z}/{x}/{y}.pngのようにローカルのファイルも指定できます。Layer definition file format - GitHub - minorua/TileLayerPlugin: [QGIS Plugin] add a web tile map as a layer onto your map canvas

QMetaTiles

QTilesを拡張したプラグインで、タイルをダウンロードできます。

QMetaTiles - QGIS Python Plugins Repository

※最新版の1.3でも、QGIS 2.18より後には対応しません。

現在有効なレイヤから読み込まれるため、実行前に対象のタイルを表示しておきます。

Extentでタイルの作成範囲を指定できます。

  • Canvas extent … 表示している範囲
  • Full extent … 全体
  • Layer extent … 指定のレイヤーの範囲

Zoomで縮尺の範囲を指定できます。Minimumが縮尺の小さい側を意味し、0は全域を表します。Maximumの上限は地図によりますが、地理院地図ならば18、OpenStreetMapならば19です。この値の大きさと実際の縮尺の大きさは、タイル提供元のサイトのURLで

https://maps.gsi.go.jp/#ZoomLevel/…
https://www.openstreetmap.org/#map=ZoomLevel/…

などのZoomLevelの値で確認できます。

これでダウンロードしたタイルは、URLをfile:///C:/Mapnik/{z}/{x}/{y}.pngのようにすることでオフラインで利用できます。

QMetaTilesでダウンロードに失敗する場合には、QTilesで試行してみます。

QTiles

QGIS Python Plugins Repository

※QGIS 2.18より後には対応しません。

複数のダウンロードサイトから、まとめて検索