Upload
hideo-harada
View
1.908
Download
1
Embed Size (px)
Citation preview
QTiles plugin for QGIS
Generate tiles from QGIS project を試してみた
FOSS4G Advent Calendar 2012
FOSS4G Advent Calendar 2012 - @hcc_hh 1
QTiles pluginとは?
Xmas明けのQuantum GIS User MLより http://osgeo-org.1560.n6.nabble.com/Announce-QTiles-plugin-td5024629.html
↑Wow, thanks for this very useful Christmas gift! QGISのプロジェクトをタイル画像(Slippy Map仕様)に出来るよ ってことらしい・・・良く分かんないけど試してみよう
• Home Page http://hub.qgis.org/projects/qtiles
• Download http://plugins.qgis.org/plugins/qtiles/version/1.0.0/download/
FOSS4G Advent Calendar 2012 - @hcc_hh 2
前提条件
本資料は以下の前提条件で作成しています • Quantum GISのインストール、基本操作などについては省きます
• Windows7 Pro. 32bit/64bit環境でのみ検証しています
• QGIS、OSGeo4W関連を可能な限りアンインストールした環境で検証しました (アップグレード環境ではインストール時にエラー続出かも・・・)
FOSS4G Advent Calendar 2012 - @hcc_hh 3
インストール(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
インストール(プラグイン) • ダウンロードしたqtiles-1.0.0.zipを展開し、 C:¥OSGeo4W¥apps¥qgis-dev¥python¥pluginsにコピーします。
※Qtilesはどのリポジトリにも登録されていないので、直接コピーしています
FOSS4G Advent Calendar 2012 - @hcc_hh 5
インストール(プラグインを有効化) まずは確認
• QGISを起動し、プラグインメニューの Pythonプラグインを呼び出す(Fetch Python Plugins)を実行
• QTilesプラグインがインストール済みなことを確認
有効化
• プラグインメニューのQGISプラグインマネージャを実行
• QTiles1.0.0にチェックを入れる
FOSS4G Advent Calendar 2012 - @hcc_hh 6
プロジェクト作成 • 数値地図(国土基本情報)を使用しました。
• Shapefile、つまりベクトルデータ(ここ重要)を使用してQGISプロジェクトを作成
• 今回は2次メッシュx1面(654252)です
• スケール連動レンダリングを設定
• EPSG:4326(WGS84) → 書き出し画像はEPSG:3857固定のようです
FOSS4G Advent Calendar 2012 - @hcc_hh 7
タイル画像エクスポート
• プラグイン-Qtilesかプラグインアイコン( )からダイアログを表示
• お試し実行ならOutoutはディレクトリ、Zoomは10-16の範囲程度が良いでしょう (デフォルトのzip書き出し且つzoomが0-18の条件で実行すると相当時間がかかります)
FOSS4G Advent Calendar 2012 - @hcc_hh 8
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
タイル画像の検証 • Outputで指定したフォルダにはMapnikサブフォルダが作成され、さらにzoomレベルごとのサブフォルダ…と続き、Slippy Map仕様の画像が作成されます。(命名規則は前頁のWikiを参照)
タイル画像だけ見てもどーしよーもないので・・・
FOSS4G Advent Calendar 2012 - @hcc_hh 10
OpenLayersで見てみよう • OpenLayersのexampleにあるBasic OSM
Example(http://openlayers.org/dev/examples/osm.html)をベースにして、QTilesのタイル画像を表示してみます。
FOSS4G Advent Calendar 2012 - @hcc_hh 11 © OpenStreetMap contributors
コード解説 • 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
サンプル画像
FOSS4G Advent Calendar 2012 - @hcc_hh 13
Zoom:14 1:27,000 下地に見えているのがOSM
Zoom:15 1:13,500 スケール連動レンダリングにより、 5.5m未満道路と追加注記が表示される
© OpenStreetMap contributors
サンプル画像
FOSS4G Advent Calendar 2012 - @hcc_hh 14
タイルに跨るラベルは切れてしまう 赤いグリッド線がタイリング
© OpenStreetMap contributors
まとめと宿題 • QGISでデータ確認→レンダリング設定→タイル書き出しできるのは便利
• ちょっと図形を書き足したいときもQGISなら簡単
• 作成範囲とスケールによっては書き出し時間が爆発する
• タイル境界でラベルが切れる
• レンダリングあまり綺麗じゃない
• リポジトリに登録されていないプラグインのインストール方法って直接コピーしかない? ローカルディスクからのインストール方法が分からなかった。
• クリーン環境じゃないQGISのインストールにはトラブルがつきもの!?
• 書き出し画像はプロジェクトCRSの設定に関わらず、EPSG:3857(Pseudo Mercator)になる。 Slippy Map仕様だからしょうがないですね・・・
• プロトタイプやちょっとした資料作成向けかな?
FOSS4G Advent Calendar 2012 - @hcc_hh 15
以上です
普段QGIS使ってないことがバレバレですねw
タイル画像もQGISだと、もっと活用できたり!?
FOSS4G Advent Calendar 2012 - @hcc_hh 16