Qtiles plugin for QGIS

16
QTiles plugin for QGIS Generate tiles from QGIS project を試してみた FOSS4G Advent Calendar 2012 FOSS4G Advent Calendar 2012 - @hcc_hh 1

Transcript of Qtiles plugin for QGIS

Page 1: Qtiles plugin for QGIS

QTiles plugin for QGIS

Generate tiles from QGIS project を試してみた

FOSS4G Advent Calendar 2012

FOSS4G Advent Calendar 2012 - @hcc_hh 1

Page 3: Qtiles plugin for QGIS

前提条件

本資料は以下の前提条件で作成しています • Quantum GISのインストール、基本操作などについては省きます

• Windows7 Pro. 32bit/64bit環境でのみ検証しています

• QGIS、OSGeo4W関連を可能な限りアンインストールした環境で検証しました (アップグレード環境ではインストール時にエラー続出かも・・・)

FOSS4G Advent Calendar 2012 - @hcc_hh 3

Page 4: Qtiles plugin for QGIS

インストール(QGIS 1.9.0) • QGIS 1.9.0(開発中)からの対応

• QGIS 1.9.0はスタンドアロンインストーラが無いので(12/28時点)、OSGeo4W-setup.exeを使います

• アドバンスドインストールのDesktopにてqgis-devパッケージを選択 QGUS 1.9.0-148がインストールされる

• インストールしてもQGISアイコン・メニューが作成されない場合は C:¥OSGeo4W¥bin¥qgis-dev.batを直接実行しましょう(qgis-dev.exeでは無い!)

FOSS4G Advent Calendar 2012 - @hcc_hh 4

Page 5: Qtiles plugin for QGIS

インストール(プラグイン) • ダウンロードしたqtiles-1.0.0.zipを展開し、 C:¥OSGeo4W¥apps¥qgis-dev¥python¥pluginsにコピーします。

※Qtilesはどのリポジトリにも登録されていないので、直接コピーしています

FOSS4G Advent Calendar 2012 - @hcc_hh 5

Page 6: Qtiles plugin for QGIS

インストール(プラグインを有効化) まずは確認

• QGISを起動し、プラグインメニューの Pythonプラグインを呼び出す(Fetch Python Plugins)を実行

• QTilesプラグインがインストール済みなことを確認

有効化

• プラグインメニューのQGISプラグインマネージャを実行

• QTiles1.0.0にチェックを入れる

FOSS4G Advent Calendar 2012 - @hcc_hh 6

Page 7: Qtiles plugin for QGIS

プロジェクト作成 • 数値地図(国土基本情報)を使用しました。

• Shapefile、つまりベクトルデータ(ここ重要)を使用してQGISプロジェクトを作成

• 今回は2次メッシュx1面(654252)です

• スケール連動レンダリングを設定

• EPSG:4326(WGS84) → 書き出し画像はEPSG:3857固定のようです

FOSS4G Advent Calendar 2012 - @hcc_hh 7

Page 8: Qtiles plugin for QGIS

タイル画像エクスポート

• プラグイン-Qtilesかプラグインアイコン( )からダイアログを表示

• お試し実行ならOutoutはディレクトリ、Zoomは10-16の範囲程度が良いでしょう (デフォルトのzip書き出し且つzoomが0-18の条件で実行すると相当時間がかかります)

FOSS4G Advent Calendar 2012 - @hcc_hh 8

Page 9: Qtiles plugin for QGIS

QTiles設定の補足

• Extent(出力範囲)は以下の通り – Canvas Extent・・・QGISに表示している範囲のみ

– Full Extent・・・すべてのオブジェクトを包括する範囲

– Later Extent・・・特定のレイヤを包括する範囲

• Zoom:0は約1:4.4億(全世界を1タイル(256x256[px])でカバーする)、zoom:18は1:1693

• http://wiki.openstreetmap.org/wiki/Slippy_map_tilenamesも参照

FOSS4G Advent Calendar 2012 - @hcc_hh 9

Page 10: Qtiles plugin for QGIS

タイル画像の検証 • Outputで指定したフォルダにはMapnikサブフォルダが作成され、さらにzoomレベルごとのサブフォルダ…と続き、Slippy Map仕様の画像が作成されます。(命名規則は前頁のWikiを参照)

タイル画像だけ見てもどーしよーもないので・・・

FOSS4G Advent Calendar 2012 - @hcc_hh 10

Page 11: Qtiles plugin for QGIS

OpenLayersで見てみよう • OpenLayersのexampleにあるBasic OSM

Example(http://openlayers.org/dev/examples/osm.html)をベースにして、QTilesのタイル画像を表示してみます。

FOSS4G Advent Calendar 2012 - @hcc_hh 11 © OpenStreetMap contributors

Page 12: Qtiles plugin for QGIS

コード解説 • QTilesレイヤを追加します。OpenLayers.XYZレイヤを使用しました。 最低限必要なコードは以下。

layer = new OpenLayers.Layer.XYZ(

“QTiles”, // レイヤ名(適当に)

“http://localhost:8080/qtiles/Mapnik/${z}/${x}/${y}.png”, // エクスポートした画像の場所

{isBaseLayer:false, sphericalMercator: true, opacity:0.7 } // レイヤオプション

);

map.addLayer(layer);

• レイヤオプションはsphericalMercator:trueが必須です

• isBaseLayer、opacityプロパティの設定値は透過させてOSMと比較・確認するためです

FOSS4G Advent Calendar 2012 - @hcc_hh 12

Page 13: Qtiles plugin for QGIS

サンプル画像

FOSS4G Advent Calendar 2012 - @hcc_hh 13

Zoom:14 1:27,000 下地に見えているのがOSM

Zoom:15 1:13,500 スケール連動レンダリングにより、 5.5m未満道路と追加注記が表示される

© OpenStreetMap contributors

Page 14: Qtiles plugin for QGIS

サンプル画像

FOSS4G Advent Calendar 2012 - @hcc_hh 14

タイルに跨るラベルは切れてしまう 赤いグリッド線がタイリング

© OpenStreetMap contributors

Page 15: Qtiles plugin for QGIS

まとめと宿題 • QGISでデータ確認→レンダリング設定→タイル書き出しできるのは便利

• ちょっと図形を書き足したいときもQGISなら簡単

• 作成範囲とスケールによっては書き出し時間が爆発する

• タイル境界でラベルが切れる

• レンダリングあまり綺麗じゃない

• リポジトリに登録されていないプラグインのインストール方法って直接コピーしかない? ローカルディスクからのインストール方法が分からなかった。

• クリーン環境じゃないQGISのインストールにはトラブルがつきもの!?

• 書き出し画像はプロジェクトCRSの設定に関わらず、EPSG:3857(Pseudo Mercator)になる。 Slippy Map仕様だからしょうがないですね・・・

• プロトタイプやちょっとした資料作成向けかな?

FOSS4G Advent Calendar 2012 - @hcc_hh 15

Page 16: Qtiles plugin for QGIS

以上です

普段QGIS使ってないことがバレバレですねw

タイル画像もQGISだと、もっと活用できたり!?

FOSS4G Advent Calendar 2012 - @hcc_hh 16