QGIS の QTiles プラグインを使えるようにした話

タイルサーバーの画像を拾ってきて結合して使いたかったのですが、 QGIS の QMetaTile プラグインは動かないし、 QTiles は一覧にないし…だったので QTilesGithub から取ってきて使えるようにしてみました。

環境は Windows 7 x64 で QGIS 2.16.3 を使ってます。

Git が使えるコンソールでリポジトリをクローンする(ウチの場合は PowerShell)

PS> git clone https://github.com/nextgis/QTiles

そのままビルドすると No module named qgscollapsiblegroupbox というエラーで泣かされるので QTiles\ui\qtilesdialogbase.ui の997行~1003行あたりを編集する。 デフォルトでは次のような感じ

 <customwidgets>
  <customwidget>
   <class>QgsCollapsibleGroupBox</class>
   <extends>QGroupBox</extends>
   <header>qgscollapsiblegroupbox.h</header>
   <container>1</container>
  </customwidget>

ここの header 要素の中身を書き換えて

 <customwidgets>
  <customwidget>
   <class>QgsCollapsibleGroupBox</class>
   <extends>QGroupBox</extends>
   <header>qgis.gui</header>
   <container>1</container>
  </customwidget>

てな感じにすると良いよってナレッジがあった。

Python 関連で一番環境がいい OSGeo4W Shell を起動してビルドする

C:\> B:
B:\> cd b:\build\QTiles

Makefile.bat が上手く動かなかったので手動で順番に実行する

b:\build\QTiles> cd ui
b:\build\QTiles\ui> pyuic4 -o ui_aboutdialogbase.py aboutdialogbase.ui
b:\build\QTiles\ui> pyuic4 -[f:id:k-side:20161011120435p:plain]o ui_qtilesdialogbase.py qtilesdialogbase.ui
b:\build\QTiles> cd ..
b:\build\QTiles> pyrcc4 -o resources_rc.py resources.qrc
b:\build\QTiles> lrelease i18n\qtiles_ru_RU.ts
b:\build\QTiles> cd ..

lrelease コマンドはどっちにしろロシア語しかないので実行しても意味ないかもしれない…。

Makefile.bat によるといくつかのファイルやディレクトリはいらないようなので削除しておく。
面倒だから削除しなかったんだけどイケた。 *.pyc だけはあったら削除しておいたほうがいいかもしんない。

\*.pyc
\*.ts
\*.ui
\*.qrc
\*.pro
\*~
\*.git\*
\*.svn\*
\*Makefile*

最後に QTiles ディレクトリをプラグインディレクトリにコピーする。
プラグインディレクトリは ~\.qgis2\python\plugins って感じの場所にあるはず。

QTiles を使う時にはオンザフライ変換(OTF)を無効にしておかないとエラーが出るっぽい。

とりあえずウチの環境ではこれで動いたった。

f:id:k-side:20161011120435p:plain