QGIS プロバイダプラグインその1:概要

プロバイダプラグインとは

QGISでは、ファイルやデータベースからデータを読み込んだり編集したりするときにプロバイダクラスを通してデータをやり取りします。
各データ形式に対応したプロバイダが用意されており、それぞれプラグイン形式で実装されています(※)。
QGISが対応していないデータ形式のデータを読み込ませたい場合は、その独自の形式に対応したプロバイダプラグインを作成することで、
QGISが読み込むことができるようになります。

ラスタデータの場合も同様にプロバイダプラグインを介してデータを読み込むことはできますが、
GDALがサポートするファイルの場合はプロバイダクラスを通さずにQgsRasterLayerクラスが直接読み込みを担当します。
QgsRasterDataProviderを利用するプロバイダプラグインは、
2010年4月時点の公式リリースの中ではwmsproviderプラグインだけのようです。
一方ベクタデータは全てプロバイダプラグインを介してデータを読み込みます。

ただし、ユーザが作成したプロバイダプラグインを呼び出すためには、
通常のGUIプラグインからプロバイダプラグインを利用するように設定する必要があります。
したがって、プロバイダプラグインを作成したら、それを利用するGUIプラグインも同時に作成する必要があります。

プロバイダプラグインの作成例

プロバイダプラグインはC++で作成する必要があります(たぶん?)。
なので、QtとQGISをソースコードからコンパイルする必要があります。
筆者の場合はVC2008を使用していますので、どちらもVC2008でコンパイルする必要があります。

QtおよびQGISのコンパイルについては以下のリンクを参照してください。

ここでは例として、コンパス測量の観測主簿から平面図を展開するプラグインを作成してみます。
観測主簿は以下のような形式で作成されているものとし、CSV形式でファイルに保存されているものとします。

No.01
27451.266 -154644.720
14.884 270.690 21.100
3.412 34.509 17.800
4.846 319.734 -5.600
21.064 48.747 1.400
4.428 22.620 -10.800
5.307 86.309 -11.700
4.594 4.236 9.600
13.750 49.160 -18.400
5.923 6.520 5.700
4.913 83.884 16.500
4.364 32.471 -1.700
12.458 6.340 13.400
3.685 309.472 -1.400
10.144 87.039 -16.700
4.109 20.854 -23.800
11.140 84.726 -11.400
10.810 39.920 8.600
7.454 80.961 0.700
14.506 8.797 11.400
13.312 32.082 6.400
3.827 52.125 -4.500
3.236 356.987 10.400
7.333 50.711 -13.400
11.733 30.789 -11.700
7.797 282.487 -7.100
end
No.02
27365.277 -154748.776
15.705 73.361 -14.700
14.290 50.281 -8.400
7.443 350.754 -11.700
14.005 67.433 5.100
13.402 34.315 17.800
17.644 11.768 21.600
10.960 349.778 18.900
8.262 288.034 23.700
19.446 273.708 21.400
12.545 48.302 -10.800
8.833 67.557 -19.500
18.341 344.597 -22.000
17.745 8.130 -0.700
7.880 48.576 -15.700
13.005 14.421 -21.600
4.507 324.462 16.700
end

1行目は測線番号、2行目が基準点座標、3行目以降が観測データで、”end”の文字までで1測線のデータです。
観測データは1列目から斜距離、方位角、高低角としています。
磁気偏角や座標系情報は持っていません。なお、各観測データは架空のものです。

それでは、このデータに対応したプロバイダプラグインを実際作成してみます。

QGIS プロバイダプラグイン その他のページ

アーカイブ